欢迎来到天天文库
浏览记录
ID:50826998
大小:38.19 KB
页数:4页
时间:2020-03-15
《Java编程实现月历.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、importjava.util.Scanner;/***键盘输入年份和月份,产生本月的月历(第一行显示周几,下面的行对应的是号数),周一是从1900年1月1号开始的**@authorAdministrator**/publicclassTest_7_11_5{publicvoidgetCalendar(){String[]week={"日","一","二","三","四","五","六"};Scannerinput=newScanner(System.in);System.out.println(""+""+"================月历查阅=======
2、===========");System.out.print("请输入年份:");intyear=input.nextInt();//输入年份//判断输入的年份是否在1990-2099之间if(year<1990
3、
4、year>2099){System.out.println("请输入1990-2099之间的年份!");}else{System.out.print("请输入月份:");intmonth=input.nextInt();//输入月份intday=0;//变量day用于存放该年该月的天数,用于后面的循环booleanisLeap=false;//标志位isLea
5、p用于判断输入的年份是否是闰年if(year%4==0&&year%100!=0
6、
7、year%400==0){isLeap=true;//如果year是闰年,则标志位isLeap置为true}if(month==1
8、
9、month==3
10、
11、month==5
12、
13、month==7
14、
15、month==8
16、
17、month==10
18、
19、month==12){day=31;//如果是大月,则本月有31天}elseif(month==4
20、
21、month==6
22、
23、month==9
24、
25、month==11){day=30;//如果是小月,则本月有30天//如果是2月,则闰年有29天,平年28天}els
26、eif(month==2){if(isLeap){day=29;}else{day=28;}}else{System.out.println("请输入正确的月份(1-12)!");//输入的年份必须是合法的,必须在1-12范围内}System.out.println(year+"年"+month+"月");for(inti=0;i<7;i++){System.out.print(week[i]+"t");}System.out.println();intyears=year-1990;//变量years用于存放要查询的年份与1990年之间的差值intsumOfDays=
27、0;//变量sumOfDays用于存放输入的年月与1990年1月之间相差的天数intcount1=0,count2=0;//下面的for循环用于确定1990年到输入的年份之间闰年和平年的个数for(inty=0;y28、29、year1%400==0){count1++;//count1个闰年}else{count2++;//count2个平年}}sumOfDays=366*count1+365*count2;//先算出输入年份与1990年之间相差的天数intbig=0,30、small=0;intfebruary=0;for(intm=1;m31、32、m==333、34、m==535、36、m==737、38、m==839、40、m==1041、42、m==12){big++;//big个大月}elseif(m==443、44、m==645、46、m==947、48、m==11){small++;//small个小月}elseif(m==2&&isLeap){february=29;//闰年2月29天}else{february=28;//平年2月28天}}intsumOfDays1=sumOfDays+31*big+30*small+february;//变量sumOfD49、ays1表示1990年1月到输入的年月之间相差的天数intweek1=sumOfDays1%7+1;//判断输入的月份的第一天是星期几//打印输出月历//开头应该空多少位置for(intn=1;n<=week1;n++){if(week1!=7){System.out.print("t");}}//依次输出日for(intj=1;j<=day;j++){if((j+week1-1)%7==0){System.out.println();}System.out.print(j+"t");}}}publicstaticvoid
28、
29、year1%400==0){count1++;//count1个闰年}else{count2++;//count2个平年}}sumOfDays=366*count1+365*count2;//先算出输入年份与1990年之间相差的天数intbig=0,
30、small=0;intfebruary=0;for(intm=1;m31、32、m==333、34、m==535、36、m==737、38、m==839、40、m==1041、42、m==12){big++;//big个大月}elseif(m==443、44、m==645、46、m==947、48、m==11){small++;//small个小月}elseif(m==2&&isLeap){february=29;//闰年2月29天}else{february=28;//平年2月28天}}intsumOfDays1=sumOfDays+31*big+30*small+february;//变量sumOfD49、ays1表示1990年1月到输入的年月之间相差的天数intweek1=sumOfDays1%7+1;//判断输入的月份的第一天是星期几//打印输出月历//开头应该空多少位置for(intn=1;n<=week1;n++){if(week1!=7){System.out.print("t");}}//依次输出日for(intj=1;j<=day;j++){if((j+week1-1)%7==0){System.out.println();}System.out.print(j+"t");}}}publicstaticvoid
31、
32、m==3
33、
34、m==5
35、
36、m==7
37、
38、m==8
39、
40、m==10
41、
42、m==12){big++;//big个大月}elseif(m==4
43、
44、m==6
45、
46、m==9
47、
48、m==11){small++;//small个小月}elseif(m==2&&isLeap){february=29;//闰年2月29天}else{february=28;//平年2月28天}}intsumOfDays1=sumOfDays+31*big+30*small+february;//变量sumOfD
49、ays1表示1990年1月到输入的年月之间相差的天数intweek1=sumOfDays1%7+1;//判断输入的月份的第一天是星期几//打印输出月历//开头应该空多少位置for(intn=1;n<=week1;n++){if(week1!=7){System.out.print("t");}}//依次输出日for(intj=1;j<=day;j++){if((j+week1-1)%7==0){System.out.println();}System.out.print(j+"t");}}}publicstaticvoid
此文档下载收益归作者所有