[小工具]生辰八字计算程序(Ver.2)

前几天突然想到要写一个生辰八字的计算程序,当然这个目的是纯属娱乐的。

生辰八字在算命学上称为四柱:年柱,月柱,日柱和时柱。每柱由一对干支组成,共八字,故名生辰八字。本质上就是以干支历法记录的一个人的出生时辰。(以下略去对以这种算命方法是伪科学的科学论证文字1587字)

在说干支历之前要特别提醒大家的一点是:中国的所谓农历并不是阴历,而是一种阴阳历。当我们说农历正月初一时,用的是阴历,以月亮的运行规律制定。当我们说到属相、干支、节气时,用的是阳历,以太阳的运行规律制定。所以说中国的农历本质上是一种相当复杂的历法。

幸好计算四柱只需要用到阳历部分,所以实现起来相对简单一些。

BTW:目前网上常见的一些万年历程序中,干支历的部分大多是错误的。

关于四柱的正确计算方法见《生辰八字计算》一文,本程序就是参考该文写成。

使用注意事项:

1、输入的日期至少要精确到小时,才能得到完整的四柱;

2、如果日期刚好是12节气(24节气中扣除12中气),则最好精确到分钟,否则可能得到错误的月柱。如果刚好碰到立春,则更要精确到分钟,否则不但月柱可能错,连年柱也可能错。

071228修订版:

1、修正了原程序中一个与timedelta计算有关的BUG;

2、调整了部分数据,使最近几年的节气时间计算结果更为准确一些,牺牲了靠近1900年一端的那些年份的节气时间计算准确度;

3、分拆为两个文件,使用单独的测试单元,正常使用可以不需要测试部分;

python源程序,基于GPL V2发布(下载:4kB,Revision:071228)。


涉猎广泛嘛~~试验下

P.S. 这么小的程序?

敲木鱼的猫 at 2008-02-24T00:22:00+08:00