思路:基姆拉尔森公式
//************************************
// Method: GetWeek
// Function: 判断给定的日期是星期几
// Parameter: year-年 mouth-月 day-日
//************************************
int GetWeek(int year, int mouth, int day)
{
//基姆拉尔森计算公式
if(year == 1 || year == 2)
{
// 1,2 月当成13,14 月
mouth += 12;
year--;
}
int week = (day + 2*mouth + 3*(mouth+1)/5 + year + year/4
- year/100 + year/400) % 7 + 1;
// 其中 1~7 代表 周一到周日
return week;
}
闰年判断:
year%4 == 0 && year%100 != 0 || year%400 ==0; |