给定一个xxxx-xx-xx日期,计算为星期几。

直接使用基姆拉尔森计算公式,外文名是Kim larsen calculation formula。

从 公元0年1月1日星期日 开始,已考虑各种因素。详见过程见大佬博客基姆拉尔森计算  公式推导。

#include <stdio.h>/*
* 基姆拉尔森计算公式
* W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
*/
int week(int y, int m, int d)
{if (m < 3) {m += 12;y--;}int w = (d + 2*m + 3*(m + 1)/5 + y + y/4 - y/100 + y/400 + 1) % 7;return w;
}int main()
{printf("%d\n", week(2019, 9, 15));  //=>0  星期天printf("%d\n", week(2015, 4, 16));  // => 4 星期四printf("%d\n", week(1989, 2, 3));   // => 5 星期五return 0;
}

蔡勒公式也有着同样的作用。

但是要区分1582.10.4的之前和之后。

#include <stdio.h>/*
* 蔡勒公式
* 1582.10.4之后  w = (y + y/4 + c/4 - 2*c + (26*(m+1))/10 + d - 1) % 7
* 1582.10.4及之前 w = (y + y/4 + c/4 -2*c + (13*(m+1))/5 + d + 2) % 7;
*/
int week(int y, int m, int d)   //1582.10.4之后星期的计算
{if (m < 3) {m += 12;y--;}int c = y / 100;y = y - c*100;int w =  (y + y/4 + c/4 - 2*c + (26*(m+1))/10 + d - 1) % 7;w = (w + 7) % 7;return w;
}int main()
{printf("%d\n", week(2019, 9, 15));  //=>0  星期天printf("%d\n", week(2015, 4, 16));  // => 4 星期四printf("%d\n", week(1989, 2, 3));   // => 5 星期五return 0;
}

参考链接:

1. https://blog.cocoabit.com/mo-nian-li-ji-suan-xing-qi-ji-mu-la-er-sen-gong-shi/

2. https://www.cnblogs.com/SeekHit/p/7498408.html

3. 百度百科——蔡勒公式

转载于:https://www.cnblogs.com/lfri/p/11509669.html

基姆拉尔森公式和蔡勒公式(计算星期几)相关推荐

  1. 【每日一题】美国节日(基姆拉尔森公式、蔡勒公式)

    [每日一题]美国节日(基姆拉尔森公式.蔡勒公式)   相关文章:   [每日一题]一周中的第几天(基姆拉尔森公式的应用)   [每日一题]美国节日(基姆拉尔森公式.蔡勒公式)   [每日一题]计算日期 ...

  2. HDU 6112 今夕何夕【2017百度之星】【日期模拟计算】【基姆拉尔森计算公式】【蔡勒公式】

    今夕何夕 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. 蔡勒公式和基姆拉尔森计算公式

    一:常用公式 W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天. ...

  4. 快速计算某一天是星期几-蔡勒公式

    以下内容转自百度百科. w:星期: w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世纪(年份前两位数) y:年(后两位数) m:月(m大于等于3 ...

  5. 计算星期几(蔡勒公式)

    Description acm的iphxer经常忘记某天是星期几,但是他记那天的具体日期,他希望你能写个程序帮帮他. Input 每行有三个整数 year,month,day,日期在1600年1月1日 ...

  6. [每日一题] 62. 美国节日(日期计算、蔡勒公式)

    1. 题目来源 链接:美国节日 来源:牛客网 2. 题目说明 和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同.具体规则如下: 1月1日:元旦 1月的 ...

  7. 蔡勒公式 java,C/C++根据年月日计算星期几(蔡勒公式篇)

    蔡勒公式  蔡勒(Zeller)公式:是一个计算星期的公式. 随便给一个日期,就能用这个公式推算出是星期几. 蔡勒公式如下: W = [C/4] - 2C + y + [y/4] + [13 * (M ...

  8. Project Euler 19 Counting Sundays( 蔡勒公式计算星期数 )

    题意:在二十世纪(1901年1月1日到2000年12月31日)中,有多少个月的1号是星期天? 蔡勒公式:计算 ( year , month , day ) 是星期几 以下图片仅供学习! /****** ...

  9. 蔡勒公式:计算某一天是星期几(C代码)

    蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几. w=y+[y/4]+[c/4]-2c+[13(m+1)/5]+d-1 -- 蔡勒(Zeller)公式 符 ...

最新文章

  1. 机器学习(14)逻辑回归(理论)
  2. 最长回文子串动态规划_九章算法 | 微软面试题:最长回文子串
  3. ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性)
  4. http://blog.sina.com.cn/s/blog_458f3c010100n4st.html
  5. 计算机专业颈椎有问题,出现这4个表现,你的颈椎病已经很严重了!上班族尤需警惕_39健康网...
  6. adb 获取当前activity_ADB 你想找的命令都在这里
  7. 起步前要做哪些准备?
  8. php取商,PHP获取百度关键词排名
  9. Seata多微服务互相调用_全局分布式事物使用案例_Account-Module 账户微服务说明---微服务升级_SpringCloud Alibaba工作笔记0064
  10. I2C通信读写数据过程
  11. DataGridView默认不选中
  12. php 如何清空数组_PHP从数组中删除元素的四种方法实例
  13. dos下载ftp文件linux,在DOS和LINUX下的FTP命令
  14. 2022-2028年中国AC-DC蓝牙音箱市场现状研究分析与发展前景预测报告
  15. 74HC595串口转并口芯片学习
  16. adb通过usb连接手机
  17. android长截图工具下载,手机长截图怎么截?超方便的长截图App
  18. word如何插入超链接
  19. C++程序练习-1008:Maya Calendar-玛雅日历
  20. 好分数班级等级C_2020高中分数线(广州|深圳|天津|广州|南宁|泉州|龙岩|武汉|沈阳|青岛|汉中|长春|四平|北京等)...

热门文章

  1. Win11:Windows无法访问指定设备,路径或文件,您可能没有合适的权限访问这个项目。
  2. react-fetch详谈
  3. linux下杀死进程
  4. selenium定位a标签python_selenium自动化,已经定位到A标签的位置,但是点击A标签时不执行后台的js方法。...
  5. 期货开户要和客户经理详谈政策
  6. 问题生成(QG)与答案生成(QA)
  7. 李开复:人工智能时代的科学家创业
  8. 大学计算机英语 总结报告,大学英语教师年终工作总结
  9. 2012年7月8日13:08:08
  10. 机器人咔嚓的音效_监听咔嚓声检测机器人装配线的故障发生