星期一
##星期一
藍(lán)橋杯第九屆java省賽A組2.
原題:
標(biāo)題:星期一
整個(gè)20世紀(jì)(1901年1月1日至2000年12月31日之間),一共有多少個(gè)星期一?
(不要告訴我你不知道今天是星期幾)
注意:需要提交的只是一個(gè)整數(shù),不要填寫任何多余的內(nèi)容或說明文字。
思路:先判斷1901年1月1日是周幾,再判斷2000年12月31日是周幾,本題里問你有幾個(gè)周一。1901年1月1日是周二,2000年12月31日是周日,所以總天數(shù)除7余6,正好少的那天是周一,直接除7取整即是周數(shù)也就是周一總天數(shù)。若本題問周三有幾天,就得周數(shù)+1。
代碼中用到了判斷某天是周幾的類。
代碼如下:
public class province_2 {public static void main(String[] args) {//先判斷1901年1月1日是周幾,2000年12月31日是周幾。calculateWeek c1=new calculateWeek(1901,1,1);calculateWeek c2=new calculateWeek(2000,12,31);//因?yàn)樗愠鲆粋€(gè)是周六一個(gè)是周日。這其中包含幾個(gè)周一,就可以直接看這其中一共有幾個(gè)完整的周就可以了。int sum=0;int y=1901;int d;while(y>=1901&&y<=2000) {if(y%400==0||(y%4==0&&y%100!=0)) {d=366;}else {d=365;}sum+=d;y++;}System.out.println(sum/7);}} class calculateWeek{public calculateWeek(int y,int m,int d){int Week;if(m==1||m==2) {m+=12;y--;}Week= (d + 2 * m + 3 * (m + 1) / 5 + y + y/4 - y/100 + y/400) % 7; ;switch(Week) {case 0:System.out.println("周一");break;case 1:System.out.println("周二");break;case 2:System.out.println("周三");break;case 3:System.out.println("周四");break;case 4:System.out.println("周五");break;case 5:System.out.println("周六");break;case 6:System.out.println("周日");break;}} }運(yùn)行結(jié)果:
總結(jié)
- 上一篇: 求一份siki学院javaee-a计划的
- 下一篇: 2018年第九届蓝桥杯真题解析 | 星期