以文本方式查看主题 - 中华农历论坛 (http://bbs.nongli.net/index.asp) -- 历法知识 (http://bbs.nongli.net/list.asp?boardid=2) ---- [求助]帮我看看这个算法,怎么总是相差十天 (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=16408) |
-- 作者:秦汉昌 -- 发布时间:2008/12/25 1:37:00 -- [求助]帮我看看这个算法,怎么总是相差十天 装载 D:\\DOWNLOADS\\汉语编程\\新词汇集\\由儒略日推算历日.CHP 。 ★ 2008 12 24.0 由儒略日推算历日 ★... 看数摞 [3] 1 3 2009 ★... 2008 12 22.0 由儒略日推算历日 ★...... 看数摞 [6] 1 3 2009 1 3 2009 ★...... 2008 12 22.0 1 由儒略日推算历日 看数摞 数摞顶有不同类型的数进行运算! 2008 12 1.0 由儒略日推算历日 看数摞 [3] 1 3 2009 ★... 2007 12 24.0 由儒略日推算历日 看数摞 [6] 1 3 2009 1 3 2008 ★...... 2007 12 1.0 由儒略日推算历日 看数摞 [9] 1 3 2009 1 3 2008 1 3 2008 ★...... |
-- 作者:秦汉昌 -- 发布时间:2008/12/25 1:38:00 -- 依原始资料如下: 由儒略日推算历日 将JD加上0.5,令 Z 为其整数部分,F 为尾数(小数)部分。 若 Z < 2299161,取A = Z 若 Z 大于等于2299 161,计算 α=INT((Z-1867216.25)/36524.25) ,A=Z+1+α-INT(α/4) 然后计算 B = A+1524 C = INT((B-122.1)/365.25) D = INT(365.25C) E = INT((B-D)/30.6001) 该月日期(带小数部分)则为:d = B - D - INT(30.6001E) + F 月份m为: 年份为y: 这个公式里求E时用的数30.6001不能代之以30.6,哪怕计算机没有先前所说的问题。否则,你得到的结果会是2月0日而不是1月31日,或者4月0日而不是3月31日。 |
-- 作者:秦汉昌 -- 发布时间:2008/12/25 1:41:00 -- 装载 D:\\DOWNLOADS\\汉语编程\\新词汇集\\由儒略日推算历日.CHP 。 ★ 2008 12 24.0 由儒略日推算历日 ★... 看数摞 [3] 1 3 2009 ★... 2008 12 22.0 由儒略日推算历日 ★...... 看数摞 [6] 1 3 2009 1 3 2009 ★...... 2008 12 22.0 1 由儒略日推算历日 看数摞 数摞顶有不同类型的数进行运算! 2008 12 1.0 由儒略日推算历日 看数摞 [3] 1 3 2009 ★... 2007 12 24.0 由儒略日推算历日 看数摞 [6] 1 3 2009 1 3 2008 ★...... 2007 12 1.0 由儒略日推算历日 看数摞 [9] 1 3 2009 1 3 2008 1 3 2008 ★....... . 2007 10 1.0 由儒略日推算历日 看数摞 [12] 1 3 2009 1 3 2008 1 3 2008 1 3 2008 ★........ 2007 6 1.0 由儒略日推算历日 ★........ 看数摞 [15] 1 3 2009 1 3 2008 1 3 2008 1 3 2008 1 3 2007 ★........ |
-- 作者:秦汉昌 -- 发布时间:2008/12/25 1:42:00 -- 不知原始数据有问题,还是我的程序没编好,呵呵 |
-- 作者:浪-淘-沙 -- 发布时间:2008/12/25 8:07:00 -- 如果正好差十天,那么你忘了1582年10月4日的第二天是1582年10月15日.中间的10月5日到10月14日已经被人为抹去了. |
-- 作者:秦汉昌 -- 发布时间:2008/12/25 20:47:00 -- 呵呵,不好意思,是我自己少了一个符号所致,现在已经测试,能正常使用,并发表于本版:儒略日推算历日.CHP |