本文主要是介绍学习入门项目之万年历,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需求:根据年份和月份,打印当月日历,如上图
提示:
判断星期几的公式:
1900年1月1日——当前日期的天数差%7+1,7 为星期日,1为星期一
1900年1月1日 星期一
1900年1月7日 日 7 % 7 = 0
1900年1月10日 三 10 % 7 = 3
1900年1月14日 日 14 % 7 = 0
1900年1月16日 二 16 % 7 = 2
1900年1月21日 日 21 % 7 = 0
查询日期到1900年1月1日经历的天数 % 7 = N 星期N 0代表星期日
2020年3月1号
Scanner s=new Scanner(System.in);System.out.println("请输入一个年份");int year =s.nextInt();System.out.println("请输入一个月份");int month =s.nextInt();System.out.println("请输入一个日期");int day =s.nextInt();int zongday=0;int tianshu=0;for (int i = 1; i <month ; i++) {switch (i){case 4:case 6:case 9:case 11:zongday+=30;break;case 2://判断给定的年份是否为闰年,这年的得出总天数if (year%4==0 && year%100!=0 |year%400==0){zongday+=29;}else {zongday+=28;}break;case 1:case 3:case 5:case 7:case 8:case 10:case 12:zongday+=31;break;default:}}int y=0;for (int i = 1900; i <year ; i++) {//判断给定的年份是否为闰年,得出1900年到上一年的天数if((i%4==0 && i%100!=0 ||i%400==0)) {y += 366;}elsey+=365;}System.out.println(y);int xingqi=(zongday+y+1)%7;System.out.println(zongday);System.out.println(xingqi);String x="/t";switch (xingqi){case 0:x="";break;case 1:x="\t\t";break;case 2:x="\t\t\t\t";break;case 3:x="\t\t\t\t\t\t";break;case 4:x="\t\t\t\t\t\t\t\t";break;case 5:x="\t\t\t\t\t\t\t\t\t\t";break;case 6:x="\t\t\t\t\t\t\t\t\t\t\t\t";break;}switch (month) {case 4:case 6:case 9:case 11:tianshu = 30;break;case 2:if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {tianshu = 29;} else {tianshu = 28;}break;default:tianshu = 31;break;}System.out.println("***************万年历***************");System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");//1 打印表头System.out.print(x);for (int i = 1; i <=tianshu ; i++) {System.out.print(i+"\t\t"); //2打印空白(观察星期与之前空个数之间的规律)if ((xingqi+i)%7==0){//若记录空白数和日期数的和是七的倍数,应该换行输出System.out.println();}}System.out.println();int zong=zongday+y+day;int todayxingqi=(zong)%7;zong=zongday+y+day-1;if (todayxingqi==0){todayxingqi=7;}System.out.println(year+"年"+month+"月"+day+"号"+"这一天是星期"+todayxingqi);System.out.println("这个月有"+tianshu+"天");System.out.println(y);System.out.println("这是离1900年到指定日期的第"+zong+"天");
这篇关于学习入门项目之万年历的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!