编程技术分享平台

网站首页 > 技术教程 正文

教你随口说出某年某月某日是星期几!“天才”的绝招

xnh888 2025-01-14 18:12:04 技术教程 31 ℃ 0 评论

最常见的公式:

W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D

Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。

最好用的是蔡勒公式:

W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1

C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。

两个公式中的[...]均指只取计算结果的整数部分。算出来的W除以7,余数是几就 是星期几。如果余数是0,则为星期日。

懵了,看不懂是吧,下面记住几个数字就简单了!

比如2003年5月15日是星期几?

首先用一张纸把下面的数字记下来:

1 2 3 4 5 6 7 8 9 10 11 12

5 1 1 4 6 2 4 0 3 5 1 3

记下来了吗?上面的一行是月份,下面的一行是代码。

只要记下来就可以知道是星期几了。

拿2005年5月15日来打个比方说:5月的代号是6,用代号+日期也就是6+15=21 再用得出的数来除以7,商几不必管,看余数,21除以7余0,所以这一天就是星期日。简单吧,如果代号+日期小于7的话,是几就是星期几。比如2005年1月1日,1月的代号是5,5+1=6,所以这天就是星期六。

按此法可推算出任何一年的星期来。就是看当月的1号是星期几,然后减1,就是代码。

还有一种方法,就是在今年的基础上每月的代码+1就是明年的。

如:2005年的代码是:5 1 1 4 6 2 4 0 3 5 1 3

那么2006年的代码是:6 2 2 5 0 3 5 1 4 6 2 4

而且所有的代码都是循环的,1995年的代码和2006年的代码是一样的。只要背下11年的所有代码,自己就相当于是个活万年历了。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表