注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
hefeifei1990的个人空间 https://home.eeworld.com.cn/space-uid-293696.html [收藏] [复制] [分享] [RSS]
日志

关于知道年月日计算星期的方法

已有 378 次阅读2014-1-7 18:18

最近在关于c语言的帖子看到这样的计算方法

#include<stdio.h>

int dayofweek(int y, int m, int d)
{
    static int t[]={0,3,2,5,0,3,5,1,4,6,2,4};
    y -= m<3;
    return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
}

int main()
{
    char wd[]="SumMonTueWedThuFriSat";
    int y,m,d;
    while (scanf("%d %d %d",&y,&m,&d)!=EOF)
        printf("%.3s.\n",&wd[dayofweek(y,m,d)*3]);
}



回去后在430里面我改了
……

week_rtc=dayofweek(year_rtc,month_rtc,day_rtc);      
        disp_week (week_rtc);              //显示星期

……

u8  dayofweek(u16  y, u8  m, u8  d)       //知道年月日直接算星期的算法
{
    y=2000+y;                               //21世纪是固定的,运算要用如2014
    static u8  t[]={0,3,2,5,0,3,5,1,4,6,2,4};
    y -= m<3;
    return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;  
}

不过不知道什么原理,有哪位大神出来解释下不

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章