版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗二 簡單數(shù)據(jù)類型和流程控制4:設(shè)int year,month,day分別表示一個日期中的年月日,試編程求a) 對于任意三個整數(shù),判斷其是否為一個合法的日期值。b) 給定一個日期值,計算若干天后的日期值c) 如果有兩個日期值,計算他們相距的天數(shù)。實驗原理:先了解日期,年份分為平年閏年,其中平年365天,這年的二月份為28天,閏年有366天,這年二月份有29天,月份除了二月之外,30天和31天之分,這主要用到數(shù)組來進(jìn)行定義月份的天數(shù),利用Scanner類從鍵盤中輸入日期和相隔天數(shù)。輸入日期不能超出那個日歷相應(yīng)的規(guī)定值實驗過程:需引用的:Scanner 包名:date類: Datetext 屬性
2、:year,month,day; 方法:int Datetrue(int year,int month,int day)(這個方法功能是驗證輸入的日期是否正確,其中包括月份,每月的天數(shù)的驗證,具體詳細(xì),看函數(shù)標(biāo)注)int CountDate(int year1,int month1,int day1,int count1)(給定一個日期,計算count天后的日期是什么時候,在這個函數(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)(輸入兩個日期,計算它們相隔時間多少天,先驗證輸入的日期是否正確,調(diào)用input()函數(shù),具體詳細(xì)過程看源代碼)void input(int y,int m,int d)(這個函數(shù)通過遞歸調(diào)用,因輸入的日期不正確要求用戶重新輸入,調(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) /驗證輸入的日期是否符合正常輸入 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) /給點一個日期值,計算若干天后的日期int year10=year1,month10=month1,day10=day1,count=count1;System.out.println("輸出"+year10+"年"+month10+"月"+day10+"號"+"到"+count+"天后的日期是多少?");/System.out.println("下面
8、來計算相隔"+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+"號"); return 0;public int timeGap(int year_2,int month_2,int day_2,int year3,int month3,int day3)System.out.println("下面來計算兩個日期相隔多少天");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)兩個日期之間有年份之差時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)兩個年份之間沒有年份之差時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) /沒有月份之差時if(day1>day2)dayGap=dayGap+day1-day2;else dayGap=dayGap+day2-day1;System.out.println("日期"+date1+"和日期"+date2+"之間相隔時間為:"+dayGap+"天");return 0;Datetext(int y,int m,int d) yea
16、r=y; month=m; day=d; System.out.println(year+"年"+month+"月"+day+"號");public void input(int y,int m,int d)int out;out=Datetrue(y,m,d);if(out=-1)System.out.println("請重新輸入");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("下面來進(jìn)行日期計算過程");Scanner sc=new Scanner(System.in);System.out.println("請輸入一個日期,請輸入數(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("來驗證一下讀取的日期是否正確"); text.Datetrue(y,m,d); System.out.println("請輸入一個日期"); int y1=sc.nextInt();int m1=sc.nextInt();int d1=sc.nextInt();text.input(y1, m1, d1);System.out.println("請輸入一個相隔天數(shù)");int n=sc.nextInt();text.CountDate(text.year,text.month,text.day,n);System.out.println("下面來計算兩個時間段的相隔天數(shù)");System.out.println("請輸入日期:");System.out.println("請輸入第一個日期:");int y2=sc.n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車運行材料復(fù)習(xí)題1
- 互聯(lián)網(wǎng)綜合學(xué)科測試 卷1
- 19高中數(shù)學(xué)新教材課堂導(dǎo)學(xué)案(數(shù)列的概念)
- 第二章《一元二次方程》綜合檢測題2024-2025學(xué)年北師大版數(shù)學(xué)九年級上冊
- 醫(yī)療健康電子產(chǎn)品相關(guān)行業(yè)投資規(guī)劃報告范本
- 教具及類似用具相關(guān)項目投資計劃書
- 專題15 類比歸納專題:求平面直角坐標(biāo)系中的圖形面積壓軸題三種模型全攻略(原卷版)
- 棍棒傷力學(xué)特性與損傷機(jī)理
- 航天飛船發(fā)射(2023年山東威海中考語文試卷非連續(xù)性文本閱讀題及答案)
- 班級手工藝品展主題班會
- 阿里云客服認(rèn)證考試-淘工廠崗前前置學(xué)習(xí)課程 +專項客服認(rèn)證考試
- 2024-2029年中國干式熟成柜行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 體育賽事安全保障方案(2篇)
- 《阿Q正傳》《邊城》比較閱讀教學(xué)設(shè)計 統(tǒng)編版高中語文選擇性必修下冊
- 2024年軍隊文職統(tǒng)一考試《專業(yè)科目》管理學(xué)試卷試題真題
- 外墻腳手架拆除施工方案
- 藥店質(zhì)量管理體系文件
- (新版)導(dǎo)游資格證考試題庫帶答案(完整版)
- 動靜脈內(nèi)瘺球囊擴(kuò)張術(shù)
- 急診科溺水護(hù)理查房
- 2024年岳陽職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
評論
0/150
提交評論