基姆拉尔森公式和蔡勒公式(计算星期几)
给定一个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
基姆拉尔森公式和蔡勒公式(计算星期几)相关推荐
- 【每日一题】美国节日(基姆拉尔森公式、蔡勒公式)
[每日一题]美国节日(基姆拉尔森公式.蔡勒公式) 相关文章: [每日一题]一周中的第几天(基姆拉尔森公式的应用) [每日一题]美国节日(基姆拉尔森公式.蔡勒公式) [每日一题]计算日期 ...
- HDU 6112 今夕何夕【2017百度之星】【日期模拟计算】【基姆拉尔森计算公式】【蔡勒公式】
今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 蔡勒公式和基姆拉尔森计算公式
一:常用公式 W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天. ...
- 快速计算某一天是星期几-蔡勒公式
以下内容转自百度百科. w:星期: w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世纪(年份前两位数) y:年(后两位数) m:月(m大于等于3 ...
- 计算星期几(蔡勒公式)
Description acm的iphxer经常忘记某天是星期几,但是他记那天的具体日期,他希望你能写个程序帮帮他. Input 每行有三个整数 year,month,day,日期在1600年1月1日 ...
- [每日一题] 62. 美国节日(日期计算、蔡勒公式)
1. 题目来源 链接:美国节日 来源:牛客网 2. 题目说明 和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同.具体规则如下: 1月1日:元旦 1月的 ...
- 蔡勒公式 java,C/C++根据年月日计算星期几(蔡勒公式篇)
蔡勒公式 蔡勒(Zeller)公式:是一个计算星期的公式. 随便给一个日期,就能用这个公式推算出是星期几. 蔡勒公式如下: W = [C/4] - 2C + y + [y/4] + [13 * (M ...
- Project Euler 19 Counting Sundays( 蔡勒公式计算星期数 )
题意:在二十世纪(1901年1月1日到2000年12月31日)中,有多少个月的1号是星期天? 蔡勒公式:计算 ( year , month , day ) 是星期几 以下图片仅供学习! /****** ...
- 蔡勒公式:计算某一天是星期几(C代码)
蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几. w=y+[y/4]+[c/4]-2c+[13(m+1)/5]+d-1 -- 蔡勒(Zeller)公式 符 ...
最新文章
- 机器学习(14)逻辑回归(理论)
- 最长回文子串动态规划_九章算法 | 微软面试题:最长回文子串
- ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性)
- http://blog.sina.com.cn/s/blog_458f3c010100n4st.html
- 计算机专业颈椎有问题,出现这4个表现,你的颈椎病已经很严重了!上班族尤需警惕_39健康网...
- adb 获取当前activity_ADB 你想找的命令都在这里
- 起步前要做哪些准备?
- php取商,PHP获取百度关键词排名
- Seata多微服务互相调用_全局分布式事物使用案例_Account-Module 账户微服务说明---微服务升级_SpringCloud Alibaba工作笔记0064
- I2C通信读写数据过程
- DataGridView默认不选中
- php 如何清空数组_PHP从数组中删除元素的四种方法实例
- dos下载ftp文件linux,在DOS和LINUX下的FTP命令
- 2022-2028年中国AC-DC蓝牙音箱市场现状研究分析与发展前景预测报告
- 74HC595串口转并口芯片学习
- adb通过usb连接手机
- android长截图工具下载,手机长截图怎么截?超方便的长截图App
- word如何插入超链接
- C++程序练习-1008:Maya Calendar-玛雅日历
- 好分数班级等级C_2020高中分数线(广州|深圳|天津|广州|南宁|泉州|龙岩|武汉|沈阳|青岛|汉中|长春|四平|北京等)...
热门文章
- Win11:Windows无法访问指定设备,路径或文件,您可能没有合适的权限访问这个项目。
- react-fetch详谈
- linux下杀死进程
- selenium定位a标签python_selenium自动化,已经定位到A标签的位置,但是点击A标签时不执行后台的js方法。...
- 期货开户要和客户经理详谈政策
- 问题生成(QG)与答案生成(QA)
- 李开复:人工智能时代的科学家创业
- 大学计算机英语 总结报告,大学英语教师年终工作总结
- 2012年7月8日13:08:08
- 机器人咔嚓的音效_监听咔嚓声检测机器人装配线的故障发生