如何一看月日就知道是星期几

据说有的人一看是几月几号,就能随口说出是星期几.太厉害了 不知道是真的假的,特以向博学之人请教.

不要被那些能速算星期几的“天才”骗了,这方法很简单: 年数+月数+几号,除以7的余数就是星期几。 先举例,再解释: 2007年6月18日 年数:0 月数:4 几号:18 4+18=22 除以7余1,星期一。 年数和月数是什么?不要急,往下看。 显然,这个公式中,只有几号是直接加进去的,年和月有对应的数。 那么,月数怎么来呢?不管,先只要死记就可以了: 月份:1、10 月数: 0 意思就是:1月,10月的月数是0,我把所有月份对应月数给出来: 月份:1、10 :5 :8 :2、3、11 :6 :9、12 :4、7 月数:0 :1 :2 :3 :4 :5 :6 背诵就这么样子: 一十零,五一八二、二三十一三、** **、九十二五、四七六 反正是把每个月份都和0-6月数对应了,你现在可以把月数表画在手 心,出去向同事炫耀了:三秒钟算今年的几月几日星期几。 今年(2007),年数是0,如果遇到1月和10月,那几号就是星期几了, 当然,8号是星期一,依此类推。 2007年数是0,那2008呢?恩,我们先算一下2007年12月31日: 0+5+31=36,星期一 那2008年1月1日应该是星期二。 2008年的年数+月数+1=2,显然,2008的年数是1. 我们可以得到: 2006:6 2007:0 2008:1(1,2月份);2(3月开始) 2009:3 2010:4 2011:5 哈哈,这几年内的都可以算了: 2008年8月8日:2+2+8...星期五 2009年5月1日:3+1+1...星期五 2010年10月1日:4+0+1...星期五 呵呵,这么巧,都是星期五。 那么,年数真的需要这样算么?不! 年数=(年+年/4+年/400)百分号7 2007年数= 2007+2007/4+2007/400 2007+501+5 ---余数都舍弃 2513 Mod 7=0 2009年数=2009+2009/4+2009/400 =2009+502+5 =2516 MOD 7=3 2008年数=2008+502+5 2515 MOD 7=2 年数1到哪里去了?就是2008年的1月和2月,原因很简单: 2008多一天, 2月29日 到此,我们确认重点: 只要死记月数: 一十零,五一八二、二三十一三、** **、九十二五、四七六 年数,是平年递增1,闰年三月再递增一次,依次0-6这么滚动 的,如果闲来无事,可以把尾数是0或者5的年数都记住了,这 样,任何一个年份的几月几日都可以很快算出星期几了。 今年12月25号星期几? 0+5+25:星期二 或者这么算: 0+(-2)+25百分号7=-2+4=2 如果几号数字大,可以先求余,速度快! 4月31日呢? 记住,没有4月31日。 此方法与万年星期历公式有相同原理,不过laodie的方法更适合 于产生“天才”,不管是人还是机器,查表法比单纯的浮点运算 快的多。如果你感兴趣,可以继续优化。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-28
二楼的方法绝了!三楼也“不错”,呵呵!
第2个回答  2008-05-28
第3个回答  推荐于2017-10-12
  
  最常见的公式:

  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,则为星期日。
第4个回答  2008-05-28
先拿本日历背上几天就差不多了
相似回答