Tag cloud
adobe algorithm android apache Arch Archlinux birthday blogging C++ C++ Primer domain DreamHost English Firefox font fun G1 game GFW GnuPG Google holiday Java life Linux mail Mobile music network nVidia OI PageRank pal password programming qq science template Tor Ubuntu Vijos webmaster tools windows wordpress WoWCategories
Archives
- August 2010
- July 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- September 2009
- July 2009
- June 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Meta
Tag Archives: calendar
计算任意日期是星期几的方法──蔡勒公式(Zeller's congruence)
我们经常需要计算一个日期是星期几,比较好想的方法是知道一个日期是星期几(比如 1900 年 1 月 1 日是周一),然后一天一天地数……效率有点低,呵呵。改进一点可以一次数一个月或者数一年,不过貌似得用到什么偏移表什么的,不够麻烦的。 来,我们说说蔡勒公式。形式非常诡异和神奇: [tex]$$dayOfWeek = \left(d + \left\lfloor\frac{26(m+1)}{10}\right\rfloor + y + \left\lfloor\frac{y}{4}\right\rfloor + 6 \left\lfloor\frac{y}{100}\right\rfloor + \left\lfloor\frac{y}{400}\right\rfloor\right) \mod 7$$[/tex] 这里我写的是一种比较适用于计算机计算的公式,其他的形式可以参看维基百科。 上式中,y 是年份,m 是月份,d 是日期,dayOfWeek 就是星期几了(以 0 为星期六,1 为星期日,依此类推)。特别注意,如果月份是一月或者二月,要把它们当作上一年的十三月、十四月。 当然,这个公式只适用于格里历,很久以前的事它就管不了了。 Tags:calendar Related Posts none