小物の戯言 - 略歴雑記 RSSフィード

管理人:NOB (はてなでは nobml, twitter でも nobml)

[何か。の略歴] [SSP BUGTRAQ]
[Disc-2] [LOVE Disc-2同盟]

2018-01-13

[][]日家九星の計算方法(改訂版)

2012年12月31日の日記 (id:nobml:20121231) で、「もへじ男爵」で実装する日家九星の計算方法を紹介しました。

その後 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 から、陽遁・陰遁の切替日は次のように求めることができます。

  • 「甲子 (00)」から「壬辰 (28)」なら、直前の甲子の日 (夏至・冬至の K 日前)
  • 「癸巳 (29)」から「癸亥 (59)」なら、直後の甲子の日 (夏至・冬至の (60 - 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年冬、となります。

*1:日本標準時では09時

*2:紀元前4713年1月1日世界時12時からの経過日数

*3:甲・乙・丙・丁・戊・己・庚・辛・壬・癸の10種類

*4:子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥の12種類

*5:40世紀頃から85世紀頃に出現するが、簡略化のため今回は実装しない

2017-05-24

[]捕捉メモ

  • 里々ゴーストエディタ「さとりすと 1.2.19」 (2017-04-05, 2017-05-07 fix1)
  • 里々ゴーストエディタ「さとりすと 1.2.20 テスト版」 (2017-05-11, 2017-05-13 そのに)
  • ninix-aya-current 5.0.3 (2017-04-09)

2016-12-22

[]捕捉メモ

  • 里々ゴーストエディタ「さとりすと 1.2.16 Fix4」 (2016-12-10)
  • SSP 2.3.95 (2016-11-28)
  • Android伺か ver2.4.2 (2016-11-13)
  • @homepage(nifty)サービス終了 (2016-11-10)

2016-11-26

[]捕捉メモ

  • MeCabラッパーSAORI「kisaragi」 (2016-11-24)
  • SAORI「Multi Balloon Talk」更新 (2016-11-23)
  • SSP 2.3.93 (2016-11-19)
  • SSP 2.3.94 test1 テスト版 (2016-11-20)
  • 里々ゴーストエディタ「さとりすと 1.2.16 Fix3」 (2016-11-12)

2016-10-23

[]捕捉メモ

  • SSP 2.3.86 (2016-09-30)
  • ninix-aya 5.0.2 (2016-10-16)
  • SAORI「Multi Balloon Talk」更新 (2016-10-13)
  • 里々ゴーストエディタ「さとりすと 1.2.16」 (2016-10-09)
  • 里々ゴーストエディタ「さとりすと 1.2.16 Fix1」 (2016-10-21)
1999 | 01 |
2002 | 10 | 11 | 12 |
2003 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2014 | 01 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2016 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2017 | 05 |
2018 | 01 |
Connection: close