蓝桥杯:日期问题

问题1:2015-3-2 距离 1979-12-15 多少天?
计算有相差多少天可以用Data类,但由于Data类会有时区上的问题,所以自己创建计算方法

public class DataCompute {
	static int day_count(int year1,int month1,int day1,
						  int year2,int month2,int day2) {
		return get_days(year2,month2,day2) - 
				get_days(year1,month1,day1);
	}
	
	static int get_days(int year,int month,int day) {
		int[] M = {0,31,28,31,30,31,30,31,31,30,31,30,31};
		if(year%4==0 && year%100!=0 || year%400==0) M[2]++;
		int sum = 0;
		for(int i=1;i<year;i++) {
			sum += 365;
		}
		if(year%4==0 && year%100!=0 || year%400==0) {
			sum ++;
		}
		for(int i=1;i<month;i++) {
			sum += M[i];
		}
		sum += day;
		return sum;
	}
	
	public static void main(String[] args) {
		System.out.println(day_count(1979,12,15,2015,3,2)); //12852
	}
}

问题2:1949年的国庆节(10月1日)是星期六。
今年(2012)的国庆节是星期一。
那么,从建国到现在,有几次国庆节正好是星期日呢?

只要答案,不限手段!
可以用windows日历,windows计算器,Excel公式,。。。。。
当然,也可以编程!

public class Sunday {
	//365%7=1  366%7=2
	static int isLeapYear(int year) {
		int day = 1;
		if(year%4==0 && year%100!=0 || year%400==0) {
			day++;
		}
		return day;
	}
	
	public static void main(String[] args) {
		int a = 6;
		int count = 0;
		for(int i=1950; i<2012; i++) {
			a += isLeapYear(i);
			if(a%7==0) {
				count ++;
			}
		}
		System.out.println(count);//9
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_44260464/article/details/105517251
今日推荐