日家九星の計算方法(改訂版)
2012年12月31日の日記で、「もへじ男爵」で実装する日家九星の計算方法を紹介しました。
その後 K.Oka 氏が「九星の計算」で著され、多機能カレンダーソフト「Calend Mate」で採用された計算方式が、より明解で、かつ将来にわたっても破綻を来たさない方式でしたので、「もへじ男爵」でも採用することとしました。
実装のためのメモの意味合いも含めて、ここで紹介したいと思います。
以下では、2008年12月31日の日家九星を求めていきます。
夏至・冬至の日付と、その日の干支を求める
まずは、日家九星を求めたい日を含む年、およびその前年・翌年の夏至と冬至の日付を、計算により求めます。
日付は、世界時00時 *1 時点の「ユリウス通日 JD *2」に換算しておくと良いでしょう。説明の便宜上、ここでは JD から 2400000.5 を差し引いた値である「修正ユリウス日 MJD」を代わりに用います。2008年の場合ですから、2007年から2009年まで求めることになります。
2007夏 | 2007冬 | 2008夏 | 2008冬 | 2009夏 | 2009冬 | |
---|---|---|---|---|---|---|
夏至・冬至の日付 (MJD) |
2007/06/22 (54273) |
2007/12/22 (54456) |
2008/06/21 (54638) |
2008/12/21 (54821) |
2009/06/21 (55003) |
2009/12/22 (55187) |
次に、上記で求めた夏至・冬至の日の干支を、計算により求めます。
日の干支というのは、十干 *3 と十二支 *4 を、日付に順番に割り当てたものです。下表に示すように、60日で一巡する形となりますので、甲子から順に 00〜59 の値を割り振っておきます。
甲子 (00) | 乙丑 (01) | 丙寅 (02) | 丁卯 (03) | 戊辰 (04) | 己巳 (05) |
庚午 (06) | 辛未 (07) | 壬申 (08) | 癸酉 (09) | 甲戌 (10) | 乙亥 (11) |
丙子 (12) | 丁丑 (13) | 戊寅 (14) | 己卯 (15) | 庚辰 (16) | 辛巳 (17) |
壬午 (18) | 癸未 (19) | 甲申 (20) | 乙酉 (21) | 丙戌 (22) | 丁亥 (23) |
戊子 (24) | 己丑 (25) | 庚寅 (26) | 辛卯 (27) | 壬辰 (28) | 癸巳 (29) |
甲午 (30) | 乙未 (31) | 丙申 (32) | 丁酉 (33) | 戊戌 (34) | 己亥 (35) |
庚子 (36) | 辛丑 (37) | 壬寅 (38) | 癸卯 (39) | 甲辰 (40) | 乙巳 (41) |
丙午 (42) | 丁未 (43) | 戊申 (44) | 己酉 (45) | 庚戌 (46) | 辛亥 (47) |
壬子 (48) | 癸丑 (49) | 甲寅 (50) | 乙卯 (51) | 丙辰 (52) | 丁巳 (53) |
戊午 (54) | 己未 (55) | 庚申 (56) | 辛酉 (57) | 壬戌 (58) | 癸亥 (59) |
修正ユリウス日 MJD に 50 を加えた値を 60 で割った剰余 (余り) が、その日の干支 K となります。
K = (MJD + 50) mod 60
2007夏 | 2007冬 | 2008夏 | 2008冬 | 2009夏 | 2009冬 | |
---|---|---|---|---|---|---|
夏至・冬至の日付 (MJD) |
2007/06/22 (54273) |
2007/12/22 (54456) |
2008/06/21 (54638) |
2008/12/21 (54821) |
2009/06/21 (55003) |
2009/12/22 (55187) |
日の干支 (K) | 丁亥 (23) | 庚寅 (26) | 壬辰 (28) | 乙未 (31) | 丁酉 (33) | 辛丑 (37) |
陽遁・陰遁の切替日の日付を求める
日家九星は、冬から夏にかけては「一白→二黒→……→九紫→一白→……」と昇順に並ぶ「陽遁」(180日) 、夏から冬にかけては「九紫→八白→……→一白→九紫→……」と降順に並ぶ「陰遁」(180日) になります。
陽遁・陰遁は、下記の規則に従って切り替わります。
すなわち、夏至・冬至の日の干支 K から、陽遁・陰遁の切替日は次のように求めることができます。
ただ、上記の規則で陽遁・陰遁を繰り返していくと、陽遁・陰遁が合わせて360日である一方、1年は約365.2422日ですから、次第にズレが大きくなり、夏至・冬至に最も近い甲子の日が切替日ではなくなってしまいます。そこで、11年〜12年の一度の割合で、陽遁・陰遁の期間を30日ずつ延長して、ズレを調整しています。この延長された期間 (60日) を「九星の閏」と呼びます。
九星の閏を置くか否かについては、切替日 (切替日A) と次の切替日 (切替日B) の間隔から判断する。
- 切替日Aと切替日Bとの間隔が180日の場合は、九星の閏を置かない。
- 切替日Aと切替日Bとの間隔が240日の場合は、切替日Bの前の60日間に九星の閏を置く。
- 切替日Aと切替日Bとの間隔が120日の場合は、切替日Aの前の60日間に九星の閏を置く*5。
- この時、切替日Bは60日後倒しして、間隔が180日となるようにする。
なお、九星の閏での陽遁・陰遁は、下記の規則に従って切り替わることとする。
- 夏に九星の閏を置く場合は、閏の31日目 (甲午の日) を切替日として、三碧から陰遁を開始する。
- 冬に九星の閏を置く場合は、閏の31日目 (甲午の日) を切替日として、七赤から陽遁を開始する。
2008年の場合について、甲子の日を切替日とすると、次のようになります。
2007夏 | 2007冬 | 2008夏 | 2008冬 | 2009夏 | 2009冬 | |
---|---|---|---|---|---|---|
夏至・冬至の日付 (MJD) |
2007/06/22 (54273) |
2007/12/22 (54456) |
2008/06/21 (54638) |
2008/12/21 (54821) |
2009/06/21 (55003) |
2009/12/22 (55187) |
日の干支 (K) | 丁亥 (23) | 庚寅 (26) | 壬辰 (28) | 乙未 (31) | 丁酉 (33) | 辛丑 (37) |
切替日の日付 (MJD) |
2007/05/30 (54250) |
2007/11/26 (54430) |
2008/05/24 (54610) |
2009/01/19 (54850) |
2009/07/18 (55030) |
2010/01/14 (55210) |
切替日の干支 (K) | 甲子 (00) | 甲子 (00) | 甲子 (00) | 甲子 (00) | 甲子 (00) | 甲子 (00) |
切替日の九星 | 九紫 (陰遁) | 一白 (陽遁) | 九紫 (陰遁) | 一白 (陽遁) | 九紫 (陰遁) | 一白 (陽遁) |
2008夏と2008冬の切替日の間隔が240日になっていますので、ここに九星の閏を置きます。
2007夏 | 2007冬 | 2008夏 | 2008冬 | 2009夏 | 2009冬 | |
---|---|---|---|---|---|---|
夏至・冬至の日付 (MJD) |
2007/06/22 (54273) |
2007/12/22 (54456) |
2008/06/21 (54638) |
2008/12/21 (54821) |
2009/06/21 (55003) |
2009/12/22 (55187) |
日の干支 (K) | 丁亥 (23) | 庚寅 (26) | 壬辰 (28) | 乙未 (31) | 丁酉 (33) | 辛丑 (37) |
切替日の日付 (MJD) |
2007/05/30 (54250) |
2007/11/26 (54430) |
2008/05/24 (54610) |
2008/12/20 (54820) |
2009/07/18 (55030) |
2010/01/14 (55210) |
切替日の干支 (K) | 甲子 (00) | 甲子 (00) | 甲子 (00) | 甲午 (30) | 甲子 (00) | 甲子 (00) |
切替日の九星 | 九紫 (陰遁) | 一白 (陽遁) | 九紫 (陰遁) | 七赤 (陽遁) | 九紫 (陰遁) | 一白 (陽遁) |
2008年12月31日 (MJD = 54831) の日家九星ですが、上記の表より、2008年12月20日 (MJD = 54820) を切替日として、七赤から陽遁を開始していることになりますので、九紫火星と求まる訳です。
上記の方式によって、1951年〜2050年の間で「九星の閏」が置かれるのは、1951年夏、1962年冬、1974年夏、1985年冬、1997年夏、2008年冬、2019年冬、2031年冬、2042年冬、となります。