如何根据日期判断是星期几?

如题所述

C语言根据日期判断星期几,使用基姆拉尔森计算公式:

W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日数,m表示月份数,y表示年数。

注意:

把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。

以公元元年为参考,公元元年1月1日为星期一

参考代码:

#include <stdio.h>
void CaculateWeekDay(int y,int m, int d)
{
    if(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;
    }

void main()
{
    CaculateWeekDay(2015,10,1);
}

温馨提示:答案为网友推荐,仅供参考
相似回答