当前位置:首页 > Code > 正文内容

根据日期判断星期几

许玮6年前 (2018-11-14)Code1880

之前在给一个客户做鼠标轨迹热点分析的功能的时候,需要根据日期显示当前是星期几,当时写了一堆有的没的函数实现了功能。后来无意中发现了基姆拉尔森计算公式,可以直接实现目的。

算法如下:

基姆拉尔森计算公式

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

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

注意:在公式中有个与其他公式不同的地方:

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

//返回值0-6表示星期天-星期6


int 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+1)%7;    
    return iWeek;  
}


调用int iWeekday = CalculateWeekDay(2003,13,10);


扫描二维码推送至手机访问。

版权声明:本文由Will编程学习之路发布,如需转载请注明出处。

本文链接:http://willhsu.com/?id=6

标签: C/C++
分享给朋友:

相关文章

qDebug输出QString6年前 (2018-11-17)
QT侦测HID设备的插拔4年前 (2020-05-19)
Gitea上传3年前 (2021-06-04)
QT常用快捷键4年前 (2020-05-05)
安装配置mysql最新版3年前 (2021-06-06)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。