60秒轻松计算出任意一年任意一天星期几?

60秒轻松计算出任意一年任意一天星期几?


一、提出问题

60秒就可以轻松计算出任意一年任意一天星期几吗?

你相信吗?

如果能算出,连脑神经专家都认为是神童。

大家可以通过度娘搜索“张戈   自闭症”,连人民网都有报道。有图为证:


     如何快速计算出任意一年任意一天,星期几呢?如:2015年元旦,星期几。

二、解决之道

计算公式是:

星期几 = (年份代码 + 月份代码 + 日期)mod 7

mod 7 的含义就是说,对该数除以7的余数是多少??

三、21世纪年份代码的计算公式

a.应用举例

包括:2000--2099,包含2000年以及2099年

b.应用举例

用于计算21世纪每个年份的年份代码的计算公式是:

年份 = 2000 + X

年份代码 = ( X / 4 + X)mod 7。

解释一下:

1.X除以4的商,只要商,不要余数,也就是我们常说的取结果的整数部分;

2.然后再与X相加;

3.最后讲该结果除以7,所得余数,即为年份代码;

c.应用举例

2015 = 2000 + 15

所以2015的X,对应的当然就是15啦!

15除以4的商,当然就是3啰!

3加上15,等于18,

18除以7,得到的余数,就是4。

数学规范表达就是:

2015年份代码 = ( 15 / 4 + 15) mod 7 = (3 + 15) mod 7 = 4。

所以2015年的年份代码就是4。

d.考一考、练一练

您知道2000的年份代码吗?

温馨提示:

看公式:

年份代码 = ( X / 4 + X)mod 7。

想都不用想,2000年的年份代码当然是0啦!

四、其他世纪年份代码的计算公式

18世纪的年份代码,是在21世纪的年份代码的基础上加上5或者减去2;

(18世纪包括1700--1799,包含1700年以及1799年)

19世纪的年份代码,是在21世纪的年份代码的基础上加上3;

(19世纪包括1800--1899,包含1800年以及1899年)

20世纪的年份代码,是在21世纪的年份代码的基础上加上1;

(18世纪包括1700--1799,包含1700年以及1799年)

22世纪的年份代码,是在21世纪的年份代码的基础上加上5或者减去2。

(22世纪包括2100--2199,包含2100年以及2199年)

目前的公历历法,就是格列高利历法,英国从1752年才开始采用这个历法。

18世纪是该历法的起点世纪。

格列高利历法,是400年1个轮回。

所以18世纪的年份代码与22世纪的年份代码,完全一样。

18世纪与22世纪正好相差400年。

也就是说:

2415年的每一天的星期几与2015年每一天的星期几是一样的,是一模一样的。

2415年4月8日,与2015年4月8月,都是星期二。

五、月份代码详细说明

具体如下:


序号


月份


月份代码


1


五月


0


2


八月


1


3


二月、三月、十一月


2


4


六月


3


5


九月、十二月


4


6


四月、七月


5


7


一月、十月


6

备注:

如果该年是闰年,那么:

1月份的数字代码为5,

2月份的数字代码为1。

PS,偶再啰嗦几句:

余数是几,就代表星期几,

如余数是1,就表示是星期一;

余数是2,就表示是星期二。

需要说明的,如果余数是0,则表示是:星期天/星期日。

请家长朋友一定要注意下:余数0,代表是:星期天/星期日。

六、何谓闰年????

1.口诀:

四年一闰,百年不闰,四百年再闰。

2.计算方法:

1.能被4整除的年份,但不能被100整除,那么他是闰年;

例如:

2012年,能被4整除,也不能被100整除,所以2012是闰年。

2100年,能被4整除,但也能被100整除,所以2100不是闰年。

2.能被400整除的年份,那么他也是闰年。

2000年,就是能被400整除,所以,2000年是闰年。

七、案例解析

1.案例一:

2015年元旦,星期几呢?

根据计算公式:

星期几 = (年份代码 + 月份代码 + 日期)mod 7

2015年的年份代码是4

1月份的月份代码是6

所以,

( 4+ 6+ 1) mod 7 = 11 mod 7 = 4。

再说一遍,11 mod 7 就是对该数字除以7,所得的余数。

答案就是:2015年元旦,星期四。

2.案例二:

2016年元旦,星期几呢?

根据计算公式:

星期几 = (年份代码 + 月份代码 + 日期)mod 7

2016年的年份代码是(16 / 4 + 16)/ mod 7 = 6

2016年的年份代码是6。

注意2016年是闰年,所以1月份的月份代码应该是5;

所以,

( 6 + 5 + 1) mod 7 = 12 mod 7 = 5。

再说一遍,12 mod 7 就是对该数字除以7,所得的余数。

答案就是:2016年元旦,星期五。


时间: 2024-10-10 18:59:27

60秒轻松计算出任意一年任意一天星期几?的相关文章

粉丝不足5万的公众号,怎么在60秒内变现?

距2012年的公众号元年至今,公众号走过了4年的历程,"一条广告20万""公众号估值1000万"这样的神话不在少数,越来越多的企业.团体.个人开通了公众号,想要从中分一杯羹. 2015年下半年,公众号的整体表现开始乏力,到了16年,红海期的疲劳现象愈演愈烈:会话打开率降低.文章阅读量下降.获取新用户的成本上升.粉丝活跃度走低--一言不合就取关,变现更是遥遥无期. 公众号极度红海期, 小账号还有出头之日吗? 听过了那么多经验, 还是运营不好公众号? 或许你应该试试[西

对指定日期计算出N天后的日期问题

指定日期计算出N天后的日期问题 问题描述:先输入起始日期,再输入任意天数n,求n天后的日期. 源代码一(参考http://zhidao.baidu.com/linkurl=0BxF0QvTywzuRkLUFj6ulUQKYqp97CjUOZBV1UUmXoCkS9HNyOT2axHkcOsRLi-xlB_JE6KvdglSD23S35EUXK) #include<stdio.h> <span style="font-family:SimHei;font-size:14px;&q

c语言代码编程题汇总:统计学生的分数,计算出低于平均值的人数

统计学生的分数,计算出低于平均值的人数 程序代码如下: 1 /* 2 2017年3月9日11:51:28 3 功能:统计学生的分数,计算出低于平均值的人数 4 */ 5 #include"stdio.h" 6 int main (void) 7 { 8 int i = 0, j; 9 int score; 10 float sum = 0.0, aver = 0.0; 11 int m = 0, k = 0; 12 int a[100]; 13 int b[100]; 14 15 16

解决Linux性能问题的前60秒

为了解决性能问题,你登入了一台Linux服务器,在最开始的一分钟内需要查看什么? 在Netflix我们有一个庞大的EC2 Linux集群,还有非常多的性能分析工具来监控和调查它的性能.其中包括用于云监控的Atlas,用于实例按需分析的Vector.即使这些工具帮助我们解决了大多数问题,我们有时还是得登入Linux实例,运行一些标准的Linux性能工具来解决问题. 在这篇文章里,Netflix Performance Engineering团队将使用居家常备的Linux标准命令行工具,演示在性能调

对安卓获取验证码倒计时60秒Button按钮的简单封装

鉴于经常在注册获取验证码时候需要一个倒计时按钮觉得很麻烦,抽点时间写了一个TimeButton 键鼠下特性, TimeButton使用的时候跟普通Button一样没有冲突, TimeButton在倒计时的时候返回了如果没有超过剩下的时间再次进入会继续跑时哦, TimeButton里面完成了按钮的点击显示和倒计时逻辑, TimeButton在activity销毁后也会销毁不会像线程一样还在后台跑, TimeButton的显示文字和倒计时都可以自行设置当然也有默认的, 原创地址 http://wri

【ZT】在微信上有哪些高情商的说话方式 | M周刊(听语音需要60秒,看文字只需10秒)

https://baijiahao.baidu.com/s?id=1590547145580792217&wfr=spider&for=pc https://yuedu.baidu.com/hybrid/column/78adfd69b207e87101f69e3143323968011cf4e9; 在微信上有哪些高情商的说话方式 | M周刊 晓报告 01-26 订阅 复杂的商业世界,听吴晓波就够了 点击上图▲成为会员 加入超45万人的财经知识社群 文/巴九灵(微信公众号:吴晓波频道) 小

在固定宽度 下计算出实际的行高

//根据字符串内容的多少  在固定宽度 下计算出实际的行高 - (CGFloat)HelperTextHeightFromTextString:(NSString *)text width:(CGFloat)textWidth fontSize:(CGFloat)size { if ([self heperGetCurrentIOS] >= 7.0) { //iOS7之后 /* 第一个参数: 预设空间 宽度固定  高度预设 一个最大值 第二个参数: 行间距 如果超出范围是否截断 第三个参数: 属

输入年月日计算出是该年的第多少天

插件和工具介绍内容均收集于网络,太多了就不一一注明了,在此谢过! 1.Charles 为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析.一个可查看所有HTTP和SSL/HTTPS流量的工具.这款工具对于你测试和服务器端进行交互的应用非常有用 2.xScope xScope带有六种不同的工具,帮助每一个设计者快速.精确的完成工作,这些工具功能灵活.强大,包括∶量

输入年份和天数计算出几月几号

//转换函数如下,其中通过指针同时向主函数传回月份和天数 void month_day(int year, int yearday, int *month, int *day){ //k月份,leap判断是否闰年(0非闰年1闰年) int k, leap; int tab[2][13] = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30