欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言根据年-月-日-判断星期几

程序员文章站 2024-01-01 19:30:04
...

利用基姆拉尔森计算公式

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日为星期一。

效果如图: 

C语言根据年-月-日-判断星期几

代码如下:

#include <stdio.h>
const char *WeekYearday(int years, int months, int days) 
{
    int WeekDay=-1; 
    if(1==months || 2==months) 
    {   
        months+=12; 
        years--;
    }   
    WeekDay=(days+1+2*months+3*(months+1)/5+years+years/4-years/100+years/400)%7;
    switch(WeekDay)
    {   
        case 0 : 
            return "星期天[Sunday]"; 
            break;
        case 1 : 
            return "星期一[Monday]"; 
            break;
        case 2 : 
            return "星期二[Tuesday]"; 
            break;
        case 3 : 
            return "星期三[Wednesday]"; 
            break;
        case 4 : 
            return "星期四[Thursday]"; 
            break;
        case 5 : 
            return "星期五[Friday]"; 
            break;                                                             
        case 6 : 
            return "星期六[Saturday]"; 
            break;
        default : 
            return NULL; 
            break;
    }   
    return NULL;
}
int main()
{
    int year,month,day;
    char ch='1';
    while(ch!='\033')
    { 
        printf("\n请输入日期:\n格式为:1900,1,1\n");
        scanf("%d,%d,%d",&year,&month,&day);
        const char *p=WeekYearday(year,month,day);
        printf("今天是:%s\n",p);
        ch=getchar();
        printf("\n");
    }
    return 0;
}

 

相关标签: C语言

上一篇:

下一篇: