【数论系列】 基姆拉尔森计算公式
创作时间:
作者:
@小白创作中心
【数论系列】 基姆拉尔森计算公式
引用
CSDN
1.
https://blog.csdn.net/qq_40772692/article/details/80330346
基姆拉尔森计算公式用于计算一周内的日期。比如给你年月日,从而计算今天是星期几。假设 d为日,m为月,y为年,则其表达式如下:
Week = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7, 3<=m<=14
Week的取值范围是06,其中0代表星期日,16分别代表星期一到星期六。 注意 在运算时要把1月和2月看为是上一年的13月和14月代入计算!其模板代码如下:
int Date(int y,int m,int d) int week = (d + 2*m +3*(m+1)/5 + y + y/4 - y/100 + y/400 + 1)%7; return week;//其中0~6表示周日、周一到周六
例题分析
HDU6112 今夕何夕
接下来最近的哪一年里的同一个日子,和今天的星期数一样?
int Date(int y,int m,int d) int week = (d + 2*m +3*(m+1)/5 + y + y/4 - y/100 + y/400 + 1)%7; if((y%4==0&&y%100!=0)||y%400==0) scanf("%d-%d-%d",&year,&month,&day); int week = Date(year,month,day); for(int i = year+1;i<10000;i++)//枚举判断 if(judgeYear(year)&&month==2&&day==29&&!judgeYear(i))continue;//注意特别判断第一年闰年2月29第二年不存在的情况! if(week == Date(i,month,day)){
热门推荐
火影忍者中的因陀罗和阿修罗的存在:与印度神话相反
2024年两轮电动车发展及趋势行业研究报告
汉字是怎么创造的,有什么独特的使用方法?“四体二用”给你答案
柯南·奥布莱恩奥斯卡惊现中文首秀,背后真相令人捧腹,意义非凡
经常流鼻血怎么办?五种常见原因及解决方案
利用定时器实现按键消抖
提前退租如何才能不亏?这些细节别忽视!
图文详解:如何辨别二手PS5游戏手柄真伪
可投资资产的定义与分类
合同变更说明:明确变更事项,保障双方权益
缓解过拟合的几个常用方法
双辽市采取“四项举措”精准提升乡镇(街)综合执法培训效能
新车车险怎么买比较划算?是销售介绍什么买什么,还是自己学习一下然后自己选择呢?
自学与报班:两种学习方式的差异解析
餐边柜的8个设计精髓,瞬间提升格调
游泳的9大好处:从减脂到延年益寿,越早知道越好
寻找价值洼地:聚焦低估值高成长属性标的
手动脉冲发生器如何工作?
农历闰月怎么算的方法
高蛋白流食有哪些
离婚子女抚养权孩子意见是否重要?
黄金期货实物交割(黄金期货实物交割流程)
高性价比攻略:如何用最少预算搞定高性能游戏本
为什么拼多多的透明度这么低?
研究建议:睡前做好这件事,能有效改善睡眠质量
社会学到底是一门研究什么的学科
专注力发展关键:从游戏到训练的全方位指南
上海独居老人生前由姑姑照顾,离世后民政局被指定为300万遗产管理人
抑郁症患者出现流鼻血现象的原因探究
日文中表达「笑」的方式,您知道几种呢?