如果你决定不自己计算公式,数学博士会给出一个易于阅读的公式推导。公式如下:
在这里k个是一个月的第几天,米是月份数,取3月=1,2月=12,天是年份的最后两位数,并且c(c)是一年中的前两位数字;计算年份数时天和c(c),上一年用于一月和二月。然后(f)是星期几,星期日=0,星期六=6。
根据公式,很容易编写一个函数来计算星期几:
(定义(zeller年-月-日)
(让*(m(如果(<第3个月)(+第10个月))
(年(如果(<第3个月)(-1年)年)
(d(模yr 100))
(list-ref'(星期日星期一星期二星期三星期四星期五星期六)
(模(+天(商(-(*13 m)1)5)d
(商d4)(商c4)(*-2c))
我们使用朱利安和格雷戈里亚人函数和断言来自的宏标准前奏曲; 测试于1753年1月1日开始,持续了1000年:
(do((i 2361331(+1)))((=i 2726573))
(let值((年月日)(格雷戈里安i))
(断言(list-ref)(周一周二周三周五周六周日)
(模(朱利安年月日)7)
(泽勒年月日))
您可以在以下位置运行程序http://programmingpraxis.codepad.org/YNmQyDN1.
页:1 2