时间问题解法:
1.利用Excel
2.Java的Calendar类
3.时间差模板
1.2018蓝桥杯JavaA组2-星期一(利用Excel):https://blog.csdn.net/guanghuichenshao/article/details/79781039
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等多余信息)
import java.util.Calendar; import java.util.Scanner; public class Main { static Scanner sc = new Scanner(System.in); public static void main(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<stdio.h> 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<y1;i++){ if(i%4==0&&i%100!=0||i%400==0) c1+=366; else c1+=365; } for(i=1;i<m1;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<y2;i++){ if(i%4==0&&i%100!=0||i%400==0) c2+=366; else c2+=365; } for(i=1;i<m2;i++){ if(y2%4==0&&y2%100!=0||y2%400==0) c2+=a[1][i]; else c2+=a[0][i]; } c2+=d2; printf("%d ",c2-c1); } return 0; }