C语言根据日期判断星期几(使用基姆拉尔森计算公式) - MilkeZhang 的网络笔记

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来代入公式计算。以公元元年为参考,公元

MilkeZhang

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

阅读:133  点赞:0   留言:0



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

程序如下:

/*利用基姆拉尔森计算日期公式 w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)*/


#include <stdio.h>

const char * getWeekdayByYearday(int iY, int iM, int iD) 
{
    int iWeekDay = -1; 
    if (1 == iM || 2 == iM) 
    {   
        iM += 12; 
        iY--;
    }   
    iWeekDay = (iD + 1 + 2 * iM + 3 * (iM + 1) / 5 + iY + iY / 4 - iY / 100 + iY / 400) % 7;
    switch(iWeekDay)
    {   
        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 = getWeekdayByYearday(year, month, day);
        printf("WeekDay : %s\n", p);
        ch = getchar();
        printf("\n");
    }
}



请输入日期:
格式为:1900,1,1
2008,4,29
WeekDay : Tuesday


请输入日期:
格式为:1900,1,1
2015,2,4
WeekDay : Wednesday


请输入日期:
格式为:1900,1,1


内容转载为博客园

作  者:fengbohello
个人网站:http://www.fengbohello.top/
E-mail : fengbohello@foxmail.com


编写于:2024/11/14 14:19:53
发布 IP 属地:广东省深圳市

版权声明

本站内容均来自网络转载或网友提供,如有侵权请及时联系我们删除!本站不承担任何争议和法律责任!


艾金森

每一个童年的梦想都值得用青春去捍卫!




用户地图 心情地图 日记地图 笔记地图 时间轴地图 投票地图 习题地图 24.8.5回到我的世界里:我不要再这么颓废了颈肩腰腿痛独特秘方绝招11月23日简赤jc 的日记 2024/06/25 12:53:37risk 的日记 2024/11/25 15:21:44为什么这种东西还存在于中国的书店啊2007年星洲日报讲解自杀。10-910-232024年的第一场秋雨Jun Peng Cui 的日记 2024/08/23 15:25:05简赤jc 的日记 2024/08/30 20:19:30我找到oc文了2024.10.25 我要我记得,记得今天一场满足的拥抱risk 的日记 2024/11/25 15:21:44渣男的婚外情故事2007年星洲日报讲解通宵读书。#空气一少,医生的手术刀就在你的身体乱乱开刀8月1日恢复中第二天咯24.4.11夜:麻木、我想成为更丰富的人oc相关Food2024-06-17 Web开发记录【心情新增配图功能】24.7.21栀子味蓝色小狗会害怕鱼头汤吗07/07/2024时代变了,课外读物变了没有啊?清浅 的日记 2024/12/08 11:16:17ZLL 的日记 2024/08/29 16:36:31看了一个非常好看的国耽美,戒断反应严重!!简赤jc 的日记 2024/06/22 21:45:33关于自知力思考22/11/20242024年4月15日戒烟的启示性时刻高考志愿填报讲解大学专业之医学类20集自助餐。。。8年后的。。。简赤jc 的日记 2024/06/25 19:26:19只是放淡了些许茶文化博览 中国茶韵24.9.3 “一家三口”的放学羁绊!回归!平淡家庭急救100招木瓜的故事1510.28复盘灵感堆积,回来再写24.11.17 写完作业好幸福。团聚好幸福。小猫要快快好起来呀…恐惧对我们的影响过大了安 的日记 2024/10/18 08:56:022007年的星洲日报是很有意义的。UL4200A检测报告GCC证书20240728如何更改Element UI的this.$confirm按钮样式心学随笔一视频清晰度分级规则:SD、HD、FHD、UHD常用网络端口html input 上传图片的方法视频编解码协议 【MPEG-4】【H.264】【H.265】【VP9】【AV1】【AVS】【VP8】【Datasheet】AX3071UA DC-DC电源系统架构设计师论文《论单元测试方法及应用》知识点铂鹿 的笔记 2024/06/10 11:48:09浅浅记录一下js 函数过多?满山的猴子我腚最红 的笔记 2024/10/23 20:59:16挨打也能成为一项超能力刮痧疗法彩色图谱软考架构-架构风格系统架构设计师论文《论信息系统的安全体系》EPS32 基础GPIO操作 LED实验赫兹伯格的卫生理论系统架构设计师论文《论中间件在SIM卡应用开发中的作用》引子文章练习420240722ESP32 【ESP_ERROR_CHECK】说明小说中让人突然下头的行为(01)高考志愿填报讲解大学专业之师范教育类EPS32 外部中断EXIT操作 KEY实验【Datasheet】FD6288T 三个独立的半桥栅极驱动集成电路芯片系统架构设计师论文《论信息系统架构的设计》现在才有闲情看得下书,但我却在迷茫。10.10系统架构设计师-22年-论文题目ZXF高考志愿填报全攻略54项【Datasheet】SCT2A10STER DC-DC电源芯片关于游戏——Part2HTML input type="number" 不显箭头英语老教授又想圈钱了老年人营养保健手册(专业版)不想学外语的思考瑞芯微RK3568对比RK3399性能解析Visual Studio和Visual Studio Code有什么区别系统架构设计师论文《论基于UML的需求分析》爱别太迟。高考志愿填报讲解大学专业之电子信息及计算机类视频编解码协议 MPEG-4 和 H.264之间的区别系统架构设计师论文《论面向服务架构设计及其应用》NoSQL 非关系型数据库书单成瘾丨240726 基层公务员读物C语言根据日期判断星期几(使用基姆拉尔森计算公式)