#include #include /*闰年函数*/ int isLeapYear(int year) { if (year == 1582) { return 0; } return ((year % 4 == 0 && year % 100!= 0) || (year % 400 == 0)); } int getFirstDayOfYear(int year) { int d = (year - 1) * 365 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400; if (year > 1582) { if (year == 1583) { d -= 10; } } return d % 7; } /*计算给定日期是星期几的函数*/ int getDayOfWeek(int year, int month, int day) { int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; if (month < 3) { year--; } return (year + year / 4 - year / 100 + year / 400 + t[month - 1] + day) % 7; } /*单列日历函数*/ int danlie(int year) { int c[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if((year%4==0&&year%100!=0)||year%400==0) c[1]++; int sum=(year-1)*365; if(year>1582) sum-=10; for(int i=1;i1582) sum-=10; for(int i=1;i