




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)二 簡(jiǎn)單數(shù)據(jù)類(lèi)型和流程控制4:設(shè)int year,month,day分別表示一個(gè)日期中的年月日,試編程求a) 對(duì)于任意三個(gè)整數(shù),判斷其是否為一個(gè)合法的日期值。b) 給定一個(gè)日期值,計(jì)算若干天后的日期值c) 如果有兩個(gè)日期值,計(jì)算他們相距的天數(shù)。實(shí)驗(yàn)原理:先了解日期,年份分為平年閏年,其中平年365天,這年的二月份為28天,閏年有366天,這年二月份有29天,月份除了二月之外,30天和31天之分,這主要用到數(shù)組來(lái)進(jìn)行定義月份的天數(shù),利用Scanner類(lèi)從鍵盤(pán)中輸入日期和相隔天數(shù)。輸入日期不能超出那個(gè)日歷相應(yīng)的規(guī)定值實(shí)驗(yàn)過(guò)程:需引用的:Scanner 包名:date類(lèi): Datetext 屬性
2、:year,month,day; 方法:int Datetrue(int year,int month,int day)(這個(gè)方法功能是驗(yàn)證輸入的日期是否正確,其中包括月份,每月的天數(shù)的驗(yàn)證,具體詳細(xì),看函數(shù)標(biāo)注)int CountDate(int year1,int month1,int day1,int count1)(給定一個(gè)日期,計(jì)算count天后的日期是什么時(shí)候,在這個(gè)函數(shù)里,還有調(diào)用Datetrue(int year,int month,int day)認(rèn)證輸入的日期是否正確)int timeGap(int year_2,int month_2,int day_2,int year
3、3,int month3,int day3)(輸入兩個(gè)日期,計(jì)算它們相隔時(shí)間多少天,先驗(yàn)證輸入的日期是否正確,調(diào)用input()函數(shù),具體詳細(xì)過(guò)程看源代碼)void input(int y,int m,int d)(這個(gè)函數(shù)通過(guò)遞歸調(diào)用,因輸入的日期不正確要求用戶(hù)重新輸入,調(diào)用了Dateture(int year,int month,int day))package date;import java.lang.String;import java.util.Scanner;public class Datetext public int year,month,day;public int Da
4、tetrue(int year,int month,int day) /驗(yàn)證輸入的日期是否符合正常輸入 int y=year;int d=day;int mon=month;int g=0;/mon是月份/int num=0; /* num=year.length();if(num!=4)System.out.println( year+"年份輸入不合法");*/if(mon>12|mon<1)System.out.println( month+"月份輸入不合法");g=-1;else System.out.println("輸入月
5、份合法");if(d>31|d<1)System.out.println( "日期輸入不合法");if(mon!=2)if(mon=1|mon=3|mon=5|mon=7|mon=8|mon=10|mon=12)if(d>31|d<1)System.out.println( "日期輸入不合法");g=-1;else System.out.println("輸入日份合法");elseif(d>30|d<1)System.out.println("日期輸入不合法");g=-
6、1;else System.out.println("輸入日份合法");else if(y%4=0)if(d>29|d<1)System.out.println( "日期輸入不合法");g=-1;else System.out.println("輸入日份合法");if(y%4!=0)if(d>28|d<1)System.out.println( "日期輸入不合法");g=-1;else System.out.println("輸入日份合法");return g;publi
7、c int CountDate(int year1,int month1,int day1,int count1) /給點(diǎn)一個(gè)日期值,計(jì)算若干天后的日期int year10=year1,month10=month1,day10=day1,count=count1;System.out.println("輸出"+year10+"年"+month10+"月"+day10+"號(hào)"+"到"+count+"天后的日期是多少?");/System.out.println("下面
8、來(lái)計(jì)算相隔"+count+"后的日期");int ynumber,mnumber,month2;/month2是二月份的日數(shù) if(year10%4=0) /判斷年份 ynumber=count/366; mnumber=count%366+day10; month2=29; else ynumber=count/365; mnumber=count%365+day10; month2=28; if(ynumber>=1) year10=year10+ynumber; /*if(month=1|month=3|month=5|month=7|month=8|
9、month=10|month=12) day_count=31; elseif(month!=2) day_count=30; */ int month_day=0,31,month2,31,30,31,30,31,31,30,31,30,31; for(;mnumber>month_daymonth10;) mnumber=mnumber-month_daymonth10; if(month10=12) month10=0; year10=year10+1; month10+; day10=mnumber; System.out.println("加上"+count
10、+"天是"+year10+"年"+month10+"月"+day10+"號(hào)"); return 0;public int timeGap(int year_2,int month_2,int day_2,int year3,int month3,int day3)System.out.println("下面來(lái)計(jì)算兩個(gè)日期相隔多少天");String date1=year_2+"-"+month_2+"-"+day_2;String date2=year3+
11、"-"+month3+"-"+day3;int year1=year_2;int month1=month_2;int day2=day3;int year2=year3;int yearGap,dayGap=0;int month2=month3;int day1=day_2;int yearday=0,0;int month_year_day=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,28,31,30,31,30,31,31,30,31,30,31;/分配月份的天數(shù)if(year1>year2)yea
12、rGap=year1-year2;int temp1;temp1=year1;year1=year2;year2=temp1;int temp2;temp2=month1;month1=month2;month2=temp2;int temp3;temp3=day1;day1=day2;day2=temp3;elseyearGap=year2-year1;int year=year1,year2;int month=month1,month2;for(int i=0;i<=1;i+)if(yeari%4=0)month_year_dayi2=29;yeardayi=366;else mo
13、nth_year_dayi2=28;yeardayi=365;for(int i=1;i<(yearGap-1);i+)if(year1+i)%4=0)dayGap=dayGap+366;elsedayGap=dayGap+365;if(yearGap>0) /當(dāng)兩個(gè)日期之間有年份之差時(shí)for(;month2>0;)dayGap=dayGap+month_year_day1month2;month2-;dayGap=dayGap+day2;for(;month0<13;)dayGap=dayGap+month_year_day0month0;month0+;dayGap
14、=dayGap+month_year_day0month1-day1;else /當(dāng)兩個(gè)年份之間沒(méi)有年份之差時(shí)if(month1!=month2)/當(dāng)有月份之差if(month1>month2)dayGap=dayGap+month_year_day0month2-day2+day1;for(;month2<month1-1;)month2+;dayGap=dayGap+month_year_day0month2;else if(month1<month2)dayGap=dayGap+month_year_day0month1-day1+day2;for(;month1<
15、;month2-1;)month1+;dayGap=dayGap+month_year_day0month1;else if(month1=month2) /沒(méi)有月份之差時(shí)if(day1>day2)dayGap=dayGap+day1-day2;else dayGap=dayGap+day2-day1;System.out.println("日期"+date1+"和日期"+date2+"之間相隔時(shí)間為:"+dayGap+"天");return 0;Datetext(int y,int m,int d) yea
16、r=y; month=m; day=d; System.out.println(year+"年"+month+"月"+day+"號(hào)");public void input(int y,int m,int d)int out;out=Datetrue(y,m,d);if(out=-1)System.out.println("請(qǐng)重新輸入");Scanner sc=new Scanner(System.in);int y1=sc.nextInt();int m1=sc.nextInt();int d1=sc.nextIn
17、t();y=y1;m=m1;d=d1;input(y,m,d);else year=y; month=m;day=d;public static void main(String args)System.out.println("下面來(lái)進(jìn)行日期計(jì)算過(guò)程");Scanner sc=new Scanner(System.in);System.out.println("請(qǐng)輸入一個(gè)日期,請(qǐng)輸入數(shù)字日期");int y=sc.nextInt();int m=sc.nextInt();int d=sc.nextInt();Datetext text=new Date
18、text(y,m,d);System.out.println("來(lái)驗(yàn)證一下讀取的日期是否正確"); text.Datetrue(y,m,d); System.out.println("請(qǐng)輸入一個(gè)日期"); int y1=sc.nextInt();int m1=sc.nextInt();int d1=sc.nextInt();text.input(y1, m1, d1);System.out.println("請(qǐng)輸入一個(gè)相隔天數(shù)");int n=sc.nextInt();text.CountDate(text.year,text.month,text.day,n);System.out.println("下面來(lái)計(jì)算兩個(gè)時(shí)間段的相隔天數(shù)");System.out.println("請(qǐng)輸入日期:");System.out.println("請(qǐng)輸入第一個(gè)日期:");int y2=sc.n
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 手術(shù)切痣后期護(hù)理常規(guī)
- 個(gè)人報(bào)稅流程規(guī)范
- 鐵皮保溫施工培訓(xùn)
- 家具設(shè)計(jì)經(jīng)典案例
- 2025年鐵路貨物運(yùn)輸服務(wù)項(xiàng)目申請(qǐng)報(bào)告模板
- 2025年金融服務(wù)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 2025年河北中煙工業(yè)有限責(zé)任公司博士研究生招聘考試筆試試題(含答案)
- 2025年中央和國(guó)家機(jī)關(guān)工委所屬事業(yè)單位招聘工作人員4人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 徜徉生字教學(xué)課件
- 奶油蛋糕教學(xué)課件制作
- GB/T 45719-2025半導(dǎo)體器件金屬氧化物半導(dǎo)體(MOS)晶體管的熱載流子試驗(yàn)
- 寶媽日常心理護(hù)理
- 2025年社會(huì)學(xué)概論測(cè)試題含答案(附解析)
- 2025-2030年環(huán)境工程產(chǎn)業(yè)深度調(diào)研及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2024年安徽大學(xué)專(zhuān)職輔導(dǎo)員招聘筆試真題
- GB 9743-2024轎車(chē)輪胎
- AS9100D體系標(biāo)準(zhǔn)中文版
- 固井工藝技術(shù)培訓(xùn)教學(xué)課件(77p)
- 入團(tuán)志愿書(shū)(2016版本)(可編輯打印標(biāo)準(zhǔn)A4) (1)
- 盤(pán)扣式腳手架模板與支撐架專(zhuān)項(xiàng)施工方案
- 消防器材購(gòu)銷(xiāo)合同2
評(píng)論
0/150
提交評(píng)論