luojiaweil 发表于 2012-4-15 09:35:28

格里高利历施行后任意两天间隔计算

ti-nspire自带的日期计算只能支持1950-2050这100年间的计算。我根据苏宜编著的《天文学新概论》中给出的算法做了这个程序。之所以把时间限定在格里高利历施行后,是因为之前的儒略历没有“百年不闰,四百年又闰”的设计,而且格里高利历施行时为了赶上之前的差距,去掉了1582年10月5日-14日这10天。而且儒略历早期和现在的月份设计是不同的,现在的月份是屋大维于公元前8年制定的。由于如果考虑格里历之前的立法很麻烦又复杂,不考虑的话计算结果又没有意义,因此限定格里历施行以后到无穷远的未来(未来历法改变的话结果也是没有意义的)
程序分为3个部分:days为主程序,checkrn为判断闰年的函数,可以从儒略历施行(公元前45年)一直到无穷远,考虑到了儒略历和格里历的区别。需要注意的是“当时僧侣错误理解“隔三年设置一闰年”,以致每三年设置了一个闰年。故前45年、前42年、前39年、前36年、前33年、前30年、前27年、前24年、前21年、前18年、前15年、前12年、前9年是闰年,与儒略历实际日期误差有3天。奥古斯都为了纠正了以上闰年过多的错误,故取消前5年、前1年、4年3年的闰年,拟补累积误差的天数。此后按儒略历原来的设计每四年有一次闰年”(摘自维基百科)因此公元前的计算结果基本是无意义的。ifexist为判断日期是否存在的函数,可以从屋大维改变月份设置一直算到无穷远,考虑了格里历和儒略历的区别,同时考虑了施行儒略历时去掉的10天。

936854586 发表于 2012-4-15 11:54:56

实话说,ns有内置函数的。

Nero 发表于 2012-4-15 12:06:29

实话说,ns有内置函数的。
936854586 发表于 2012-4-15 11:54 http://www.cncalc.org/images/common/back.gif
ti-nspire自带的日期计算只能支持1950-2050这100年间的计算。


回帖不看帖...

第13号天使 发表于 2012-4-15 12:53:29

以前用dbd函数秒了w2f的一道noip的题目

wtof1996 发表于 2012-4-15 13:45:37

4# 第13号天使
普及组的水题……
题目是计算你生日后的第1w天

月与映之皮丘 发表于 2012-4-15 21:35:58

4# 第13号天使


这不会是超梦吧?
页: [1]
查看完整版本: 格里高利历施行后任意两天间隔计算