代码在这里
http://home.comcast.net/~athomeprojects/build.html
问题是
现在我将private Hashtable chineseCalendar
下的代码修改
lunar_date[2] 出现计算差错
哪位高手 能够表示出来 先谢谢
业务上的东西,没人看得懂,比如什么叫做日柱。
所以,你先得解释一下这个日柱是个什么东西,然后我们才能考虑如何从代码的角度上来表示这个东西。
@silentnelis: 大概了解了。现有的日历计算方式都是以天为单位,而默认一天为24小时。而由于一天其实并不是精确的24小时,因此,jre中对某段时间进行过补正,这是阳历。而阴历的算法大多是基于阳历的日期差计算来的,这在命理学上是不准确的,对吧。
另外,这里有一个逻辑问题,即初一日(准确的说应该叫做阳历新月第一天)可能并没有日柱一说,因为日柱是根据阴历日期计算而来的,首先应该根据阳历计算出阴历,再根据阴历得到日柱。日柱是基于阴历的概念,通过阳历直接计算日柱,这在逻辑上貌似不行。
那么,现在的问题就是,如何根据阳历推算出阴历,而且不能使用常规的日期差算法,而应该使用更精确的秒差算法。这就需要对阴历的(天)这一单位给出精确的定义,总之肯定不是24小时。
以上,你看有帮助吗。
@silentnelis: 呃,既然日柱是一种序数,那么它是阴历日的序数还是阳历日的序数呢?比如初一是甲子日,这种说法是不是说,初一子时到初一亥时都是甲子日呢?日柱和阳历怎么确定关系呢?
如果日柱和阳历没法确定在时刻上的关系,即精确到秒的关系,那我认为,通过日柱是没法计算阴历的。
@飞扬的尘埃: 可以算出 我就算出来了 但是无法精确算出
修改代码省略了