时间问题解法:
1.利用Excel
2.Java的Calendar类
3.时间差模板
2.如果时间在1970.1.1之后可以使用Java自带的Calendar类计算日期。
比如:
2013蓝桥杯JavaA组1-世纪末的星期
世纪末的星期
题目:
曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。
还有人称今后的某个世纪末的12月31日,如果是星期一则会....
有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!
于是,“谣言制造商”又修改为星期日......
1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?
请回答该年份(只写这个4位整数,不要写12月31等多余信息)
importjava.util.Calendar;importjava.util.Scanner;public classMain {static Scanner sc = newScanner(System.in);public static voidmain(String[] args) {
Calendar cal=Calendar.getInstance();for(int i=1999;i<=9999;i+=100) {
cal.set(Calendar.YEAR, i);
cal.set(Calendar.MONTH,11); //12月
cal.set(Calendar.DATE, 31);int w=cal.get(Calendar.DAY_OF_WEEK);if(w==1) { //星期天为1、星期一为2...星期六为7
System.out.println(i);break;
}
}
}
}
3.时间差:蓝桥杯常考题板。。
#include
int main()
{
int n,y1,m1,d1,y2,m2,d2,c1,c2,i,j,k;
int a[2][12]={{0,31,28,31,30,31,30,31,31,30,31,30},
{0,31,29,31,30,31,30,31,31,30,31,30}};
scanf("%d",&n);
for(k=1;k<=n;k++){
scanf("%d%d%d%d%d%d",&y1,&m1,&d1,&y2,&m2,&d2);
c1=0;c2=0;
for(i=1;i
if(i%4==0&&i%100!=0||i%400==0) c1+=366;
else c1+=365;
}
for(i=1;i
if(y1%4==0&&y1%100!=0||y1%400==0) c1+=a[1][i];
else c1+=a[0][i];
}
c1+=d1;
for(i=1;i
if(i%4==0&&i%100!=0||i%400==0) c2+=366;
else c2+=365;
}
for(i=1;i
if(y2%4==0&&y2%100!=0||y2%400==0) c2+=a[1][i];
else c2+=a[0][i];
}
c2+=d2;
printf("%d\n",c2-c1);
}
return 0;
}