子平 · 玄元
排盘自测
Auspice青鸾信

你的排盘工具,真太阳时算对了吗?

Three birth times — a reproducible conformance test

拿三个已知答案的出生时间去跑一遍。钟表时间换算真太阳时只有三项——历史夏令时、与时区参考经线的经度差、 均时差——每一项都有可核对的正确答案。下面给出三个出生时间、完整算式,以及正确的引擎必须返回的那根时柱。 全程约十分钟。

先说清「对」字,因为这个字常被用成「和我这一派一致」。这里不是。盘怎么是文化传统,信多少随你; 但输入层是算术:给定日期、钟表时间、时区、经度,真太阳时只有一个正确答案,谁都能核到分钟。 本页每个数字都由驱动青鸾信排盘的同一批模块在构建时算出; 校正本身的原理见真太阳时页

要加起来的是哪三项

历史夏令时。不是今天的规则,是出生当日生效的那一条。中国大陆 1986–1991 年推行过一段 现在几乎没人记得的夏令时;那几年的北京出生证明比标准时快一小时,而今天的时区下拉框不会告诉你这件事。

经度差。每偏离时区参考经线 1°,太阳时就差 4 分钟。中国横跨五个地理时区却用一个钟; 温哥华在西经 123°,所在时区的参考经线却是西经 120°。这一项对同一地点是固定值,所以也是最常被实现的一项。

均时差。太阳自己一年里时快时慢,摆动约 −15 到 +16 分钟,来自椭圆轨道与地轴倾斜。 这一项最常被当成舍入误差扔掉。它最多相当于一个时辰的四分之一——下面第三例里,它就是两张盘之间的全部差别。

三个测试用例

每例都给了精确输入。把它输进你在用的排盘工具,比对返回的时柱即可。(三例统一按女命计算;性别只影响大运顺逆,不影响四柱本身。)

例 1 · 北京,1988 年 6 月 15 日 07:30

考点:历史夏令时——中国 1986–1991 年实行过夏令时

输入:1988-06-15 07:30 · Asia/Shanghai · 116.41°E

分量分钟
夏令时−60.00
经度差(116.41°E 对时区参考经线)−14.36
均时差−0.45
总校正−74.81

真太阳时 06:15卯时,时柱辛卯

各个不完整的实现分别返回:完全不校正是 07:30壬辰)、 只做经度差是 07:15壬辰)、经度差加夏令时是 06:15辛卯)。最后那一档已经落在正确的时辰里——这一例是被夏令时那一项决定的。

例 2 · 温哥华,1995 年 7 月 20 日 12:00

考点:夏令时叠加时区西缘——以及它对下游断语做了什么

输入:1995-07-20 12:00 · America/Vancouver · 123.12°W

分量分钟
夏令时−60.00
经度差(123.12°W 对时区参考经线)−12.48
均时差−6.01
总校正−78.49

真太阳时 10:41巳时,时柱乙巳

各个不完整的实现分别返回:完全不校正是 12:00丙午)、 只做经度差是 11:47丙午)、经度差加夏令时是 10:47乙巳)。最后那一档已经落在正确的时辰里——这一例是被夏令时那一项决定的。

例 3 · 乌鲁木齐(北京时间),2001 年 11 月 3 日 09:00

考点:均时差——这一例里它把答案又推回边界另一侧;而校正后离边界太近,本就不该硬给答案

输入:2001-11-03 09:00 · Asia/Shanghai · 87.62°E

分量分钟
夏令时0.00
经度差(87.62°E 对时区参考经线)−129.52
均时差+16.35
总校正−113.17

真太阳时 07:06辰时,时柱庚辰而且距下一条边界只有 6 分钟——见下文。

各个不完整的实现分别返回:完全不校正是 09:00辛巳)、 只做经度差是 06:50己卯)、经度差加夏令时是 06:50己卯)。最后那一档仍然是错的——这一例是被均时差那一项决定的。

分歧总表

同样三张出生证明,四个实现层级,各自返回的时柱:

实现层级例 1例 2例 3
照抄钟表时间壬辰丙午辛巳
只做经度差壬辰丙午己卯
经度差 + 夏令时辛卯乙巳己卯
三项齐全辛卯乙巳庚辰 · 不确定

最后一行以上的每一行,都是有人正拿在手里的盘。而这三例没有一个是刁钻输入:夏令时年份的大陆出生、 时区西缘的海外出生、以及 1949 年以来一直用北京时间的省份的出生。

时柱错了,究竟错掉什么

不止错一根柱子。把例 2 两张盘都推到底,未校正对已校正:

未校正(12:00)已校正(10:41)
时柱丙午乙巳
日主
强弱偏弱偏强
喜用五行金、水土、火
神煞35,多出 天乙贵人(时支)、驿马(时支)
起运2001-10-302001-11-09

强弱判定整个翻面,喜用五行跟着翻面——未校正那张盘推荐的,正是校正后要避开的。 几乎所有下游结论,不论哪一派,都压在这一行上。而这一行压在 78 分钟的算术上。

什么时候诚实的答案是「说不准」

例 3 校正后距边界 6 分钟。这在人工记录的出生时间的噪声之内—— 极少有记录准到 6 分钟,而均时差近似本身也只准到约 1 分钟。 所以诚实的输出不是「庚辰」,而是两张盘并列标明: 记录的钟表时间挪 7 分钟,就到了另一侧。

辰时卯时
时柱庚辰己卯
年柱、月柱、日柱完全相同
日主、强弱、喜用完全相同
大运干支序列完全相同
多出的神煞桃花(时支)
起运晚 10 天

这张表比一个自信的错答案有用得多,代价不过是多调一次纯函数。青鸾信在校正后落入边界 ±8 分钟内时一律给出这张对照。

怎么验收你手上的排盘工具

  1. 输入例 1。若返回壬辰,说明没做历史夏令时——最常见的失败,也最好查。
  2. 输入例 2。返回丙午是同一个毛病;返回乙巳说明夏令时与经度差都做了。接着看它给不给强弱判定,再与未校正那次对照。
  3. 输入例 3。返回己卯说明漏了均时差;返回庚辰说明三项齐全。
  4. 看例 3 有没有被标为贴近边界。只丢给你一根时柱、不加任何说明的工具,是在宣称输入数据并不具备的精度。
  5. 找那张拆解表。把三个分量列成加法表的工具可以被审计;只给一个校正后时刻、或什么都不给的,是要你信它一句话。还有一个反向检查:如果时区选择框里只有寥寥几项而不是 IANA 时区,历史规则就不可能对——「GMT+8」这点信息,不足以判断那是不是 1988 年的北京。

算得都对,也可能不一致的地方

不是所有分歧都是错误,分不清这一点的测试也就没什么价值。晚子时(23:00–24:00)一派归当日、一派归次日, 这是真实的约定分歧,不是错;错的是不告诉你用了哪一派。均时差近似算法之间差不到一分钟, 城市中心点与具体医院地址之间差一两分钟——两者都只在紧贴边界时才有意义,这正是边界提示存在的理由。 我们采用的全部约定列在排盘约定页。 但这些都解释不了一小时的差距——一小时的差距只可能是漏了一项。

为什么要公布一份自己也可能不及格的测试

因为另一条路是让人信一个黑盒子,而这个行业的信任问题是自己一点一点挣来的。盘怎么解是传统; 盘算得对不对不是信不信的事。历法换算、历史时区解析、太阳位置、六十甲子,都有对错。 这三例在每次构建时都跑一遍我们的引擎——本页正是由它们的输出生成的,引擎一改,这里的数字就跟着变。 如果你找到一个我们算错的输入,那是一份 bug 报告,我们要:联系方式;更正会公开记在勘误页

拿你自己的出生数据去排一盘——免费,无需注册。 它会把校正拆成同样三项、在离边界 8 分钟内时把另一侧那盘一并排出, 不知道时辰则计算十二个候选、意见不一处一律留白。校正原理见真太阳时与八字。青鸾信供观照,不做预测。

本页每个数字都由 lib/bazi(与排盘同一批模块)在构建时按上列输入实算得出,没有一处是手抄的。