最近、暦ネタばかり書いているが、まぁ気にしないでください。
ユリウス暦とグレゴリオ暦は、閏年の計算の違いで、年月日にズレがある。
では、この二つの暦が全く同じ年月日を示す日があるのだろうか。
ちょっと考えてみた。
西暦200年3月1日(JD=1794168)から西暦300年2月28日(JD=1830691)までの36524日間
これ、ちょっとしたクイズの問題で出題されてもいいような問題かもしれない。
この期間の前の日のJD=1794167は、
ユリウス暦:西暦200年2月29日
グレゴリオ暦:西暦200年2月28日
また、この期間の次の日のJD=1830692は、
ユリウス暦:西暦300年2月29日
グレゴリオ暦:西暦300年3月1日
どちらにしても、ユリウス暦では閏年で、グレゴリオ暦では閏年ではない。
まぁ、どうでもいい問題ですねw。
さてさて、和暦プログラムの取っ掛かりとして、とりあえず和暦における各月の1日の、JD、ユリウス暦、グレゴリオ歴をリストするのものは出来た。
出力をファイルへリダイレクトすれば、スペース区切りの整形されたファイルの出来上がり。
まぁ、これで十分ではある。
一番プログラム的に厄介なのが、和暦の表示部分である。
JD(7桁)、皇紀(10桁)、ユリウス暦(16桁)、グレゴリオ暦(16桁)
とこれらは固定長で行けるが、和暦を固定長にするには、どういうフォーマットにすれば良いのだろうか。
左詰めにするにも右詰めするにも、最長が何桁必要なのか判らなければならない。
2215926 皇紀2014年 正平9年/文和3年閏10月1日 JA1354年11月16日 GA1354年11月24日
2216930 皇紀2017年 正平12年/延文2年閏7月1日 JA1357年08月16日 GA1357年08月24日
2217934 皇紀2020年 正平15年/延文5年閏4月1日 JA1360年05月16日 GA1360年05月24日
2218939 皇紀2023年 正平18年/貞治2年閏1月1日 JA1363年02月15日 GA1363年02月23日
2219912 皇紀2025年 正平20年/貞治4年閏9月1日 JA1365年10月15日 GA1365年10月23日
2220917 皇紀2028年 正平23年/応安1年閏6月1日 JA1368年07月16日 GA1368年07月24日
2222865 皇紀2033年 文中2年/応安6年閏10月1日 JA1373年11月15日 GA1373年11月23日
2229805 皇紀2052年 元中9年/明徳3年閏10月1日 JA1392年11月15日 GA1392年11月23日
和暦の最長文字数は24桁である。
スペースでセパレートし、後ろに改行コードが入るから、
7+10+24+16+16+7=79
DOS窓の80桁でギリギリですw。
正平の2桁年に閏月が2桁月があったら、他に詰められるところは、皇紀の文字をKにでもするか、西暦の年月日表記を/とかにしないとならないですね。
もし和暦の表示を綺麗に整列させようと考えると、100年越えの元号もあるし、0パッティングして揃えたとしても、閏月はあるし、南北朝時代もあるし、これ以上どうにも出来ないかな。
因みに、JAやGAは、JulianのAC、GregorianのACってことです。
皇紀って何?って人がいるかもしれないので説明すると、神武天皇元年を皇紀元年としたものです。
例えば、零戦(零式艦上戦闘機)がなんで零式なのかというと、皇紀2600年(大正15年)に完成したから。
なんて感じで知識が広がっていくわけですね。
↧
ユリウス暦とグレゴリオ暦
↧