基姆拉尔森计算公式(计算某天是星期几)
用途:给你年月日,计算今天星期几
公式:w = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) %7;
其中: d为几号,m为月份,y为年份
w表示星期,w的取值范围是0~6,0代表星期日,1~6星期一到星期六。
注:把一月和二月看为是上一年的十三月和十四月!!
//基姆拉尔森计算公式根据日期判断星期几
void CalculateWeekDay(int y, int m,int d){
if(m==1||m==2) m+=12,y--; //把一月和二月看为是上一年的十三月和十四月
int iWeek = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
switch(iWeek){
case 0: printf("星期一\n"); break;
case 1: printf("星期二\n"); break;
case 2: printf("星期三\n"); break;
case 3: printf("星期四\n"); break;
case 4: printf("星期五\n"); break;
case 5: printf("星期六\n"); break;
case 6: printf("星期日\n"); break;
}
}
int main()
{
CalculateWeekDay(2015,9,17);
return 0;
}