基姆拉尔森计算公式(计算某天是星期几)

用途:给你年月日,计算今天星期几

 

公式: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;
}

 

posted @ 2021-05-12 16:40  gonghr  阅读(688)  评论(0编辑  收藏  举报