星期几计算的小问题(一个世纪的末日基础)

问题描述 投票:0回答:4

从这个在线计算器:http://homer.freeshell.org/dd.cgi使用它的数据我已经成功编写了一个工作版本,但是它的数据仅限于1500年到2600年。我想修改(并且做一个更好的)这样我就可以计算任何> 2600的年份。

参考表X,是否真的有一个公式可以计算所有基准世纪(2600年以上)的基准世界末日

我自己尝试过将几个世纪的值设置得比这个高,例如2700 给了我一个基本的末日'00',2800 给了'02;,2900 又回到了'00'......

感谢帮助。

algorithm language-agnostic calendar
4个回答
1
投票

据我了解,该页面的“Base Doomsday”只是一个偏移量,以允许“闰日计算的四百年周期”。因此,您只需添加四个世纪的区块即可将其无限期地扩展到未来。


0
投票

计算星期几的两种常用方法 给定的日期是世界末日,您正在使用该日期, 和

泽勒同余

www.merlyn.demon.co.uk

提供 关于日期/时间计算、各种日历的一些非常有趣的信息 系统和重要日期,因为它们与日历/日期计算相关。


0
投票
http://homer.freeshell.org/dd.cgi

是为人类干净利落地解释世界末日算法的最佳计算器,但有一点需要注意。 如果输入

2/29/1900

,它会说今天是星期四。嗯,没有 2/29/1900,因为它不是闰年 当然,如果您输入 1/35/2016,它也会为您“垃圾进垃圾出”。

想象一年只有 364 天,那么每个日期的星期几将年复一年地永远不会改变,因为

mod(364,7)==0


但是我们一年有 365 天,所以这一天每年前进 1,这就是第二个术语

mod(year, 7)

的由来。


另外,每4年有一个闰年,为最后一届贡献了

mod(year, 4)


但是每 100 年,您减去一个闰年,每 400 年,您添加一个闰年。这就是第一个术语“3,2,0,5”的用武之地。

你看,都是因为这个闰年,还有

mod(365,7)==1

生意。


7/11, 5to9 对记忆Z表有很大帮助。


0
投票

c = y % 100 centuryanchor = 5*(c % 4) % 2 + 2

	
© www.soinside.com 2019 - 2024. All rights reserved.