teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]
あなたも高機能な無料レンタル掲示板を作りませんか?
作成は、こちらから→

 投稿者
  題名
  内容 入力補助
    
 URL
[ ケータイで使う ] [ BBSティッカー ] [ 書込み通知 ]


九星の閏と120日問題

 投稿者:K.Oka  投稿日:2015年 6月16日(火)21時26分45秒
  アルゴリズムの変更

二至が癸巳~癸亥のときは直後の甲子日で陽遁と陰遁を切り替えるアルゴリズムに変更した場合、九星の閏は以下のようになります。sは夏閏、wは冬閏、※は120日問題が発生している箇所を示しています。

17世紀 1607w, 1619s, 1630w, 1642s, 1653w, 1665s, 1676w, 1688s, 1699w
18世紀 1710w, 1722s, 1733w, 1745s, 1756w, 1768s, 1779w, 1791s
19世紀 1802w, 1813w, 1825s, 1836w, 1848s, 1859w, 1871s, 1882w, 1894s
20世紀 1905w, 1916w, 1928s, 1939w, 1951s, 1962w, 1974s, 1985w, 1997s
21世紀 2008w, 2019w, 2031w, 2042w, 2054s, 2065w, 2077s, 2088w, 2100s
22世紀 2111w, 2122w, 2134w, 2145w, 2157s, 2168w, 2180s, 2191w
23世紀 2203s, 2214w, 2225w, 2237w, 2248w, 2260s, 2271w, 2283s, 2294w
24世紀 2306s, 2317w, 2328w, 2340w, 2351w, 2363s, 2374w, 2386s, 2397w
25世紀 2409s, 2420w, 2431w, 2443w, 2454w, 2466s, 2477w, 2489s, 2500w
26世紀 2512s, 2523w, 2534w, 2546w, 2557w, 2569w, 2580w, 2592s

36世紀 3507w, 3519w, 3530w, 3542s, 3553w, 3564w, 3576w, 3587w, 3599w
37世紀 3610w, 3622w, 3633w, 3645w, 3656w, 3667w, 3679w, 3690w
38世紀 3702w, 3713w, 3725w, 3736w, 3748w, 3759w, 3770w, 3782w, 3793w

42世紀 4102w, 4114w, 4125w, 4137w, 4148w, 4160w, 4171w, ※, 4194w
43世紀 4205w, 4217w, 4228w, 4240w, 4251w, 4263w, 4274w, ※, 4297w
44世紀 4308w, 4320w, 4331w, 4343w, 4354w, 4366w, 4377w, ※, 4400w
45世紀 4411w, 4423w, 4434w, 4446w, 4457w, 4469w, 4480w, ※

85世紀 8406w, 8418w, 8429w, ※, 8452w, 8463w, 8475w, 8486w, 8498w
86世紀 8509w, 8521w, 8532w, 8544w, 8555w, 8566w, 8578w, 8589w
87世紀 8601w, 8612w, 8624w, 8635w, 8647w, 8658w, 8669w, 8681w, 8692w
88世紀 8704w, 8715w, 8727w, 8738w, 8750w, 8761w, 8772w, 8784w, 8795w
89世紀 8807w, 8818w, 8830w, 8841w, 8853w, 8864w, 8876s, 8887w, 8898w
90世紀 8910w, 8921w, 8933w, 8944w, 8956w, 8967w, 8979s, 8990w


120日問題

>120日問題は「冬至癸巳→夏至壬辰」となる年に発生【6月10日の御投稿】

仰るタイミングで発生します。

4183/5/21→22 三碧→九紫(4182冬至:12/22癸巳、4183夏至:6/19壬辰)
4286/5/21→22 三碧→九紫(4285冬至:12/22癸巳、4286夏至:6/19壬辰)

8441/5/18→19 三碧→九紫(8440冬至:12/19癸巳、8441夏至:6/16壬辰)

>その120日問題の解決法も既に予定が決まって【6月10日の御投稿】

当初は以下のように考え、120日期間直後の240日期間を閏として扱う予定でした。

 240-120-240-180 → 180-180-240-180 → 180-180-210-210

ところが、120日期間が始まる冬至の干支が癸巳であるため、この期間と直後の240日期間を合わせて180日期間×2とし、直前の240日期間を閏として扱うことに変更しました。

 240-120-240-180 → 240-180-180-180 → 210-210-180-180

この変更により閏は以下のようになりました。

42世紀 4102w, 4114w, 4125w, 4137w, 4148w, 4160w, 4171w, 4182w, 4194w
43世紀 4205w, 4217w, 4228w, 4240w, 4251w, 4263w, 4274w, 4285w, 4297w
44世紀 4308w, 4320w, 4331w, 4343w, 4354w, 4366w, 4377w, 4388w, 4400w
45世紀 4411w, 4423w, 4434w, 4446w, 4457w, 4469w, 4480w, 4491w

85世紀 8406w, 8418w, 8429w, 8440w, 8452w, 8463w, 8475w, 8486w, 8498w

>103年間隔で系列になっていること以外に、23年ずつずれて系列がいくつかある【6月10日の御投稿】

これを拝見して日食・月食のサロス周期の交代を連想してしまいました。
 
 

九星の120日問題その他

 投稿者:ビスタカー  投稿日:2015年 6月10日(水)23時57分28秒
  Calend Mateで九星の120日問題を調べると、103年間隔で系列になっていること以外に、23年ずつずれて系列がいくつかあることも発見しました。

120日問題(冬至甲午→夏至癸巳、5月三碧→九紫)
系列1: 4332 4435 4538 4641 4744 4847
系列2: 4973 5076 5179 5282 5385 5488 5591 5694 5797
系列3: 5614 5717 5820 5923 6026 6129 6232 6335 6438
系列4: 6255 6358 6461 6564 6667 6770 6873 6976 7079
系列5: 6999 7102 7205 7308 7411 7514 7617
系列6: 7743 7846 7949 8052

それと、今後の予定として、九星の計算方法で夏至・冬至が癸巳のときは後の甲子日を基準として計算する形に変更する予定とのことで(このままだと120日問題は「冬至癸巳→夏至壬辰」となる年に発生)、その120日問題の解決法も既に予定が決まっていますので、今後のバージョンアップが楽しみです。九星について当初は「時間が取れないので可否も含めて未定」とのことでしたので、「出来れば次の九星の閏の2019年冬または2020年夏あたりまでに更新してほしい気持ちはある」程度であまり期待していなかったのですが、ここまで一気に話が進むとは思いませんでした。あとは暦注下段も早く入れてほしいです。
 

九星の閏一覧

 投稿者:ビスタカー  投稿日:2015年 5月31日(日)20時15分37秒
  やっと原因がわかりました。System32フォルダのCalendar_Lib.dllが古いままだったことがわかりました。そして古いDLLを削除して再インストールしたので、今はちゃんと九星も変わっています。というわけで、また九星の閏一覧を書いてみます。九星の閏について、これほど本格的な議論がなされたのは史上初めてかもしれません。

s:夏閏 w:冬閏 ※:問題 *:従来ルールでも問題ないが変わった箇所

【従来ルール】
17世紀 ※,1619s,1630w,1642s,1653w,1665s,1676w,1688s,1699w
18世紀 ※,1722s,1733w,1745s,1756w,1768s,1779w,1791s
19世紀 1802w,※,1825s,1836w,1848s,1859w,1871s,1882w,1894s
20世紀 1905w,※,1928s,※,1951s,1962w,1974s,1985w,1997s
21世紀 2008w,※,※,※,2054s,2065w,2077s,2088w,2100s
22世紀 2111w,※,※,※,2157s,2168w,2180s,2191w
23世紀 2203s,2214w,※,※,※,2260s,2271w,2283s,2294w
24世紀 2306s,2317w,※,※,※,2363s,2374w,2386s,2397w
25世紀 2409s,2420w,※,※,※,2466s,※,2489s,2500w
26世紀 2512s,2523w,※,※,※,※,※,2592s
・・・
36世紀 ※,※,※,3542s,※,※,※,※,※
37世紀 ※,※,※,※,※,※,※,※

このように、従来ルールだと、どんどん※が増えていき、37世紀でうまく決まる場所がなくなってしまいます。

【Version 2.20】
17世紀 1608s,1619w*,1630w,1642w*,1653w,1665s,1676w,1688s,1699w
18世紀 1711s,1722w*,1733w,1745w*,1756w,1768s,1779w,1791s
19世紀 1802w,1814s,1825w*,1836w,1848w*,1859w,1871s,1882w,1894s
20世紀 1905w,1917s,1928w*,1939w,1951w*,1962w,1974s,1985w,1997s
21世紀 2008w,2020s,2031w,2042w,2054w*,2065w,2077s,2088w,2100s
22世紀 2111w,2123s,2134w,2145w,2157w*,2168w,2180w*,2191w
23世紀 2203s,2214w,2226s,2237w,2248w,2260w*,2271w,2283w*,2294w
24世紀 2306s,2317w,2329s,2340w,2351w,2363w*,2374w,2386w*,2397w
25世紀 2409s,2420w,2432s,2443w,2454w,2466w*,2477w,2489w*,2500w
26世紀 2512s,2523w,2535s,2546w,2557w,2569w,2580w,2592w*
・・・
36世紀 3507w,3519w,3530w,3542w*,3553w,3565w,3576w,3588s,3599w
37世紀 3610w,3622w,3533w,3645w,3656w,3668w,3579w,3691s
38世紀 3702w,3713w,3725w,3736w,3748w,3759w,3771w,3782w,3794w
・・・
43世紀 4206w,4217w,4228w,4240w,4251w,4263w,4274w,4286w,4297w
44世紀 4309w,4320w,※,4343w,4354w,4366w,4377w,4389w,4400w
45世紀 4412w,4423w,※,4446w,4457w,4469w,4480w,4492w

38世紀で冬閏ばかりになることがわかりました。また、120日問題については、次のような原因で起きることがわかりました。一覧に載せていないところも少し見ましたが、どうやら103年周期で起きているようですね。

4332/5/20・21三碧→九紫(4331冬至:12/23甲午,4332夏至:6/19癸巳)
4435/5/20・21三碧→九紫(4434冬至:12/22甲午,4435夏至:6/19癸巳)
 

Re: 正式版でも変わっていません

 投稿者:K.Oka  投稿日:2015年 5月31日(日)14時15分56秒
編集済
  ただいまVectorからダウンロードしてクリーンインストールをしてみましたが、計算が正常に行われていることを確認しました。現在公開しているバージョンでは、西暦4100年頃~8500年頃に生じる120日問題以外には何ら問題はございません。

九星の計算はCalendarLib.dllで行っていますので、β版添付のものでしたら、計算結果は以前のものと同じになります。何らかの理由でβ版のDLLがアンインストールされていない状況であると考えられます。

前のバージョン(version 2.20β版も含む)のCalend Mateをアンインストールしてから現バージョンをインストールしてみてください。アンインストール時に「CalendarLib.dllの削除」に関するダイアログが出てくるかと思いますので、削除を選択してみてください。なお、当研究室製の他のソフトが残っている状態ではこのダイアログは出てきません。もしくはレジストリに記録されているDLLの参照数カウンタが狂っていた場合でも削除ダイアログは出ません。

参考までに月間カレンダーの結果をコピーします。

【2019年11月】
日付 曜日 旧暦    干支  六曜  九星
19  火  10月23日  庚申  友引  四緑木星
20  水  10月24日  辛酉  先負  三碧木星
21  木  10月25日  壬戌  仏滅  二黒土星
22  金  10月26日  癸亥  大安  一白水星
23  土  10月27日  甲子  赤口  一白水星
24  日  10月28日  乙丑  先勝  二黒土星
25  月  10月29日  丙寅  友引  三碧木星
26  火  10月30日  丁卯  先負  四緑木星

【2019年12月】
日付 曜日 旧暦    干支  六曜  九星
19  木  11月23日  庚寅  先負  九紫火星
20  金  11月24日  辛卯  仏滅  一白水星
21  土  11月25日  壬辰  大安  二黒土星
22  日  11月26日  癸巳  赤口  三碧木星
23  月  11月27日  甲午  先勝  四緑木星
24  火  11月28日  乙未  友引  五黄土星
25  水  11月29日  丙申  先負  六白金星
26  木  12月1日   丁酉  赤口  七赤金星

【2020年6月】
日付 曜日 旧暦    干支  六曜  九星
17  水  閏4月26日  辛卯  大安  一白水星
18  木  閏4月27日  壬辰  赤口  二黒土星
19  金  閏4月28日  癸巳  先勝  三碧木星
20  土  閏4月29日  甲午  友引  三碧木星
21  日  5月1日   乙未  大安  二黒土星
22  月  5月2日   丙申  赤口  一白水星
23  火  5月3日   丁酉  先勝  九紫火星
 

正式版でも変わっていません

 投稿者:ビスタカー  投稿日:2015年 5月31日(日)11時36分44秒
  ファイルサイズと更新日時を確認して、Calend Mateのversion 2.20正式版であることを確認しましたが、それでも九星の計算方法が変わっていません。  

Re: Calend Mateの最新版の九星

 投稿者:K.Oka  投稿日:2015年 5月30日(土)22時14分44秒
編集済
  >計算方法が変わっていませんでした。
それは先に公開したβ版の可能性が高いと思います。九星の計算方法は、β版は以前のままで、正式版にて改良しています。

version 2.20(正式版)のEXEファイルのサイズは274,432バイト、CalendarLib.dllのサイズは184,320バイトとなっています。また、これらのファイルの更新日時は2015年5月24日、2:20:00となっています。ご確認下さい。
 

Calend Mateの最新版の九星

 投稿者:ビスタカー  投稿日:2015年 5月30日(土)17時52分39秒
  現在公開中のCalend Mateの最新版をインストールしてみましたが、なぜか改良されているはずの九星の計算方法が変わっていませんでした。2019年12月・2020年6月などを見て分かったのですが。  

Re: 九星の閏

 投稿者:K.Oka  投稿日:2015年 5月28日(木)22時49分47秒
編集済
  ビスタカーさん、ご教示ありがとうございます。ご投稿を拝見してアルゴリズムの方向性が定まりましたので、このことに関して述べさせていただきたいと思います。

今回のアルゴリズム変更に先立ち、九星の閏の定義およびアルゴリズムについて調べてみました。その中には、「こよみのページ」や「もへじ男爵」も入っています。結果としては捉え方(宗派といってもいいのでしょうか)によって異なっているように思えました。そこで整理してみますと

1. 冬至・夏至に直近の甲子日の間隔が240日になるとき、最後の60日間を閏とする
2. 冬至・夏至が癸巳・甲午・乙未のときを閏とし、甲午以降を三碧からの陰遁(夏至)か七赤からの陽遁(冬至)とする
3. おおよそ11.5年(正確には11.445576...年)で60日のずれが生じるので、閏を11.5年間隔で夏と冬の交互に置く

になるかと思います。この3つを同時に満たすことは不可能と思われますので、どれを重視するかによってその結果が異なるのは仕方がないことかと思います。

アルゴリズム変更について

従来のCalend Mateでは2を採用していましたが、ご指摘の九星の不連続が生じていましたので、今回のバージョンから1を採用した。そこで2を加味すると二至が癸巳~癸亥のときには後の甲子日を、加味しない場合は二至が癸巳のときは前の甲子日を採用することになります。とりあえず今回のversion 2.20では1だけ採用し、2は加味していません。

ところが、2の加味如何を問わずに、西暦4100年頃~8500年頃の期間に於いて約100年に1回の割合で甲子日の間隔が

 …→冬→(180日)→夏→(240日)→冬→(120日)→夏→(240日)→冬→(180日)→夏→…

というパターンになることを確認しました。これが発生するのは

>-180-240-150+210-180-【5月8日のご投稿】

のパターンになっている箇所になります。これにつきましては以下のように修正をする予定です。

 …→冬→(180日)→夏→(180日)→冬→(180日)→夏→(210日)→冬(甲午日)→(210日)→夏→…

一方、

>-180-210+150-240-180-【5月8日のご投稿】

のパターンのときは、今回のアルゴリズムでは

 …→冬→(180日)→夏→(180日)→冬→(180日)→夏→(240日)→冬→(180日)→夏→…

となり、120日間になることはありませんでした。

Wikipediaに掲載されている明治改暦から2100年までの間の閏が置かれる位置と比較をしてみました。癸巳~癸亥で後の甲子日とする場合は一致することを確認しました。ただし1916、1939、2019、2042年はカッコ内に示されている位置になります。一方、癸巳までを前の甲子日とする場合は1894、1928、1951、2054年でずれが生じており、2042年はカッコ内の位置になっています。このため、二至が癸巳~癸亥のときは後の甲子日を採用するように変更する予定です。

※「和暦(わごよみ)」では癸巳のときには直後の甲子日を採用しています。

冬閏の連続

九星は陽遁と陰遁とを合わせて360日周期ですので1太陽年との差が生じ、これが累積して60日になるのが、

  60÷(365.2422-180×2)=11.445576...(年)

と見積もることができます。3の11.5年間隔での置閏の場合、1回の閏で過剰に補正をしてしまいますので、どこかで11年間隔を入れないとずれが生じてしまいます。そこで、11.5年間隔の回数をxとした方程式

  (11.5-11.445576...)x+11=11.44576...(x+1)

を解きますと、x=8.187...(回)となりますので、約100年に1回は夏閏→夏閏もしくは冬閏→冬閏のパターンにならざろうえないと思います。それでも夏閏と冬閏の交互置閏にこだわる場合は人為的に補正をするしかないと思います。ここまできますと計算で導出するのは不可能になることと、必ず交互に置かなければならないという定義付けが為されていないため、個人的には夏閏ないしは冬閏が連続しても構わないと思っています。このため、

>それと、4000年代~8000年代辺りだと、(中略)Calend Mate採用案の場合冬閏ばかりになりそう
>【5月26日のご投稿】

に関しまして今回のアルゴリズムでは西暦3700年頃~8800年頃に於いて冬閏だけになることを確認しましたが、特に調整はしないことにしました。この問題は二至が定気法で決定されていることによるもので、人為的な補正は一切しないという条件下での解決策としては、

1. 恒気法(平気法)で算出した夏至、冬至を使用
2. 冬至を12月22日、夏至を6月22日に固定(キリスト教の復活祭計算で春分の日を3月21日に固定するのと同じ発想で)

が考えられます。また人為的な変更まで網羅するとなると、算出はあきらめて変換テーブルを使うしかないと思います。
 

九星の閏

 投稿者:ビスタカー  投稿日:2015年 5月26日(火)00時34分20秒
  九星の閏が置かれる位置を、19世紀から23世紀までCalend Mateで見てみました。そしてCalend Mateの採用案でどうなるか考えてみました。参考までに、僕が当初提案した方式(その方式はゴースト「もへじ男爵」で採用されているので、もへじ男爵式と呼んでおく)を[]内に書いておきます(採用案と異なる場合のみ)。※は従来ルールでの問題です。

・1802冬
・1813冬(※1814/6/20・21六白→三碧)→1814夏
・1825夏→1825冬[1825夏]
・1836冬
・1848夏→1848冬[1848夏]
・1859冬 ・1871夏 ・1882冬 ・1894夏 ・1905冬
・1916冬(※1917/6/20・21六白→三碧)→1917夏
・1928夏→1928冬[1928夏]
・1939冬(※1940/6/19・20六白→三碧)→1939冬[1940夏]
・1951夏→1951冬[1951夏]
・1962冬 ・1974夏 ・1985冬 ・1997夏 ・2008冬
・2019冬(※2020/6/19・20六白→三碧)→2020夏
・(※2032/1/18・19四緑→一白)→2031冬
・2042冬(※2043/6/19・20六白→三碧)→2042冬[2043夏]
・2054夏→2054冬[2054夏]
・2065冬 ・2077夏 ・2088冬 ・2100夏 ・2111冬
・2122冬(※2123/6/20・21六白→三碧)→2123夏
・(※2135/1/18・19四緑→一白)→2134冬
・2145冬(※2146/6/19・20六白→三碧)→2145冬[2146夏]
・2157夏→2157冬[2157夏]
・2168冬
・2180夏→2180冬[2180夏]
・2191冬 ・2203夏 ・2214冬
・2225冬(※2226/6/20・21六白→三碧)→2226夏
・(※2238/1/18・19四緑→一白)→2237冬
・2248冬(※2249/6/19・20六白→三碧)→2248冬[2249夏]
・2260夏→2260冬[2260夏]
・2271冬
・2283夏→2283冬[2283夏]
・2294冬

ここでは、夏至・冬至が甲午のときは後の甲子日を基準としていますが、こんな感じでしょうか。採用案の場合、上に書いたように問題が解決することばかりでなく、夏至が癸巳だったりすると、従来ルールで問題が発生せず夏閏となった所が、採用案の場合冬閏に変わる場所があることも発見しました。
「こよみのページ」の九星計算もCalend Mateの採用案の方式でやっているようですが、「こよみのページ」は一時期、夏至・冬至が癸巳のとき、後の甲子日を基準として計算していたようです。下の表で、従来ルール、もへじ男爵式、Calend Mate採用案、「こよみのページ」で一時期採用されていた方法(「癸巳後」)で夏閏・冬閏がどうなるか書いてみます。19世紀から23世紀まで、世紀の変わり目にスペースを入れて見やすくしてみました。

従来  w@swswsws w@s@swsws w@@@swsws w@@@swsw sw@@@swsw
もへじ wsswswsws wsssswsws wswsswsws wswsswsw swswsswsw
採用案 wswwwwsws wswwwwsws wswwwwsws wswwwwww swswwwwww
癸巳後 wwswswsws wwswswsws wwwwswsws wwwwswsw swwwwswsw
s:夏閏 w:冬閏 @:問題あり

それと、4000年代~8000年代辺りだと、冬至から夏至までが短く、冬至の日と直後の夏至の日の干支が同じだったり、あるいは前に書いたように1つ戻ることさえあるので、Calend Mate採用案の場合冬閏ばかりになりそうですし、「6025年の冬至が甲午、6026年の夏至が癸巳」というのも見つけましたので、このような辺りで調整が必要かもしれません。
 

Calend Mateの九星計算

 投稿者:K.Oka  投稿日:2015年 5月23日(土)18時32分52秒
編集済
  2015年 5月22日(金)01時15分53秒の投稿で述べましたアルゴリズムで検証してみましたところ、将来にわたってうまくいきそうなことを確認しました。従いまして、このアルゴリズムを採用した新version 2.20を近日中に公開する予定です。

現在公開中のversion 2.20はβ版として公開しています。

【5月28日・追記】
Calend Mate version 2.20の正式版を公開しました。
 

レンタル掲示板
/18