日の干支は、七曜が未来永劫7日周期で繰り返すのと同じで、未来永劫60日周期で単純に繰り返すだけなので、暦法によって「今日は何月何日?」という問いの答えは違え、「今日の干支は何?」という問いの答えは同じです。通日 mod 60 で、日の干支は求まります。 月の干支、年の干支については、暦法によってひと月、一年の範囲が異なることになりますが、「y年m月の干支は何?」「y年の干支は何?」という問いの答えは暦法によらず同じですね。(y * 12 + m) mod 60, y mod 60 で干支が求まります。
全くの無意味 (スコア:5, 参考になる)
詳しくは
https://kakuyomu.jp/works/1177354054886223897/episodes/1177354054888260263 [kakuyomu.jp]
を読んでほしいのだが
「明治6年より前の日本では、現在使っているグレゴリオ暦とは異なる暦を使っているので、そもそも月日が一致しない」
ところがこのiPhoneのカレンダーはグレゴリオ暦のまま、西暦年をそのまま元号に変換しただけ。
だから年をさかのぼっても実際の歴史とはずれている。
天正年間までさかのぼってみてもこの時代の日本の暦は宣明暦(太陰暦)で天正11年には閏月があって13月まであった。そこを再現せずにグレゴリオ暦で12月までしか表示しないのは全く意味がない。
凄い既視感 (スコア:3)
十数年前、locale データベースいじると、月の表示を和名(睦月, 如月, ...)に出来たり、元号と開始終了年月日を登録しておくと自動的に和暦表示出来たりという機能見つけた時に冗談半分で Wikipedia を参考に大化以降の元号をはじめとしていろいろと追加しようとしたら、まさに太陰暦と太陽暦の違いによる問題で泥沼にハマりました。
太陽暦に比べると極めて曖昧な太陰暦のルールに加えて、南北朝時代には南朝と北朝で別の元号を使ってたりとか、一概にグレゴリオ歴と言っても宗派によって導入時期が違っていたりとか、そうすると和暦に併記してある西暦の年月日はどの歴なんだ?とか、タイムゾーンは JST-9 でいいのかとか、標準時子午線はどこなんだとか、調べ始めると根深い問題が多数横たわっていて、放り投げた記憶があります。
uxi
Re:凄い既視感 (スコア:1)
暦日に十干十二支を併記のカレンダーを見ての思いつきですが
暦法が改まった前後で十干十二支って跳ぶものなんでしょうか
跳ばないで維持されるものなんでしょうか?
跳ばないのならそっから補えるかも…干支も跳ぶなら破綻するけど。
Re: (スコア:0)
日の干支は、七曜が未来永劫7日周期で繰り返すのと同じで、未来永劫60日周期で単純に繰り返すだけなので、暦法によって「今日は何月何日?」という問いの答えは違え、「今日の干支は何?」という問いの答えは同じです。通日 mod 60 で、日の干支は求まります。
月の干支、年の干支については、暦法によってひと月、一年の範囲が異なることになりますが、「y年m月の干支は何?」「y年の干支は何?」という問いの答えは暦法によらず同じですね。(y * 12 + m) mod 60, y mod 60 で干支が求まります。
Re:凄い既視感 (スコア:1)
これは、閏月の干支が本月の干支と同じ(閏月はただ繰り返してるだけで、本月と同じとみなす)というルールに支えられてるわけですね。
閏月に死んだら命日どうするのっていう話も、上記ルールを知って解決しました。
Re: (スコア:0)
壬申の乱は西暦664年だから紀年法に関しては少なくともその頃からズレはないようだ(紀日や紀月は知らん)
Re:凄い既視感 (スコア:1)
> 太陽暦に比べると極めて曖昧な太陰暦のルールに加えて
個人的には、「冬至と春分の真ん中の日に一番近い新月の日が1月1日」というルールが明確で、なんかよくわからない日が1月1日になっているグレゴリオ暦よりも、よっぽど整然として論理的な暦に思います。(太陽暦で冬至を1月1日にすればシンプルで素晴らしいと思うが)
Re: (スコア:0)
曖昧だとは思わないけど、難解というか、単なるカレンダーの作成ロジックだと思うとオーバースペックなんだよね。
冬至、春分、新月を計算するのに、ケプラーの法則による角速度の変動考慮して、光行差考慮して、月や惑星からの摂動を考慮して、地軸の章動考慮して、、、。
立春近辺の新月が1月1日だけど、立春が2つの新月の真ん中あたりだと、前のが1月1日なのか後ろのがそうなのかは、天保暦の置閏ルール理解して作暦しないと決まらないし、そのルールをそのまま実装すると、今度は旧暦2033年問題にハマる。。。
平朔平気だとまだシンプルだったんでしょうが、その後、中国も日本も、何がなんでも天文実測にぴったり合わせるぜ!! の定朔定気で突っ走っちゃいましたから。
Re:全くの無意味 (スコア:1)
なんだ。せっかく次にタイムマシンに乗るときはiPhoneを持っていこうと思っていたのに。
それじゃあんまりメリットはないな。
Re:全くの無意味 (スコア:2, おもしろおかしい)
充電器を忘れるなよ。
Re:全くの無意味 (スコア:1)
充電器のコンセントプラグはどのタイプがいいですかね?
Re: (スコア:0)
バッテリー切れでデレステが出来なくなったら大変ですしね
Re: (スコア:0)
Appleのタイムマシン(笑)は過去にしか戻れないじゃん
Re:全くの無意味 (スコア:1)
未来へは自動的に行けるから問題ない。はず。
Re:全くの無意味 (スコア:1)
グレゴリオ暦のまま、って西洋でも昔はユリウス暦だったのにそれも対応できてないのかな?と思って暦に関してWikipe [wikipedia.org]を見てみたら、1582年10月4日の翌日が1582年10月15日になったと。
ただし、天正11年(1583年)以前の元号が表示されないという不具合があるという。
ってたれこみにあるが、ユリウス暦周りのバグか?ってかユリウス暦には対応してるのか・・・?
Re:全くの無意味 (スコア:2)
> 1582年10月4日の翌日が1582年10月15日になったと。
これって、UNIXのcalコマンドの基本。
Re:全くの無意味 (スコア:3, 参考になる)
UNIXのcalは、イギリスがグレゴリオ歴に移行した1752年9月が基準ですよ。
Re: (スコア:0)
>ところがこのiPhoneのカレンダーはグレゴリオ暦のまま、西暦年をそのまま元号に変換しただけ。
外面「体裁」だけを整えるのがAppleらしくてイイネ。
Re: (スコア:0)
過去の暦が狂ってるのは日本だけじゃない。根本的には紀元も暦も複数あるのが悪い。漢字表記が入ってるだけマシな方。
英語圏のシステムだと「日本語の長音符は記号だから文字に含めない」なんてザラだから。
「データはデタと書いてください」てなもんよ。
Re: (スコア:0)
デター(steam感
Re: (スコア:0)
カレンダー対応って真面目にやろうとすると専用ロジックを自前で持たないとダメな場合が有るんですよね。
1970年より前の日付を扱うとか、祝祭日で営業日のみカウントとか、
OSのサポート切れとか移植が楽になるのも追加の理由の一つ。
今ならOSSとかで複数の暦や地域に対応した良いライブラリが有るのだろうか?
Re: (スコア:0)
C言語の標準ライブラリに、カレンダー関数的なやつ、しかも
世界各国のローカル元号やローカル暦にも対応したバージョンやつを入れとけばいい
昔のコンピュータや、組み込み等、少ないメモリで動くやつには無理でも、
いまはみんな64bitメモリ数ギガ以上で動いてるんだから問題ないはず
Re:全くの無意味 (スコア:3, 参考になる)
一応.NETのカレンダークラス [microsoft.com]ではグレゴリオ暦のほかに中国の旧暦、和暦、日本の旧暦、ヘブライ暦、イスラム暦、ユリウス暦、韓国暦、韓国の旧暦、ペルシャ暦、台湾暦、台湾の旧暦、タイ仏暦、サウジイスラム暦とかなり幅広く標準サポートしてる。
今の和暦は明治6年以降なので明治5年以前の和暦を設定しようとするとエラー扱いしてた覚えがあるんだけど、改元対応で「平成33年」みたいなのもエラー扱いしないように変更されたからか、明治元年~明治5年の太陽暦もエラーにはしなくなったらしい。
うじゃうじゃ
Re: (スコア:0)
「月と日を入力したらその月のカレンダーを表示するプログラムを書け」ってプログラミングの課題に頻出なんだけど、「グレゴリオ暦以前のカレンダーを表示する場合、暦は?」と言う質問がFAQ。「グレゴリオ暦でOK。当時その月や日が何と呼ばれてたかとか、歴史は調べなくても良い」とか注釈が必要。
Re: (スコア:0)
多くの言語にカレンダー関数的なのが標準で含まれてないので、
日付計算するたびに車輪の再発明が行われてバグが混入する
言語に標準でカレンダー関数・日付計算的な機能を導入、
最低でも1900年から2099までは正常に動作しないといけないようにしとけば、
車輪の再発明が行われなくなり、バグが混入しなくなる
Re: (スコア:0)
最低でも1900年から2099までは正常に動作しないといけないようにしとけば、
2099年にグレゴリオ暦が使われていると、なぜ知っている?さては貴様、未来人…
Re:全くの無意味 (スコア:2)
2099年はまあ、このままとしても2300年からはほんとにわからない。
#400年に3回閏日抜くんじゃなくて、700年に5回抜く方が一年の周期に近い。
Re:全くの無意味 (スコア:1)
900年に7回(365.24222日)の書き間違いでしょうか?
1太陽年(365.24219日)と比べると、
400年に3回(365.24250日)よりも、
700年に5回(365.24286日)の方が誤差が増えてしまますよ。
Re:全くの無意味 (スコア:1)
時間とかも不定時法とかうるう秒とかあるので実はきっちりしようとするととても面倒。
それどころか、翌年度の祝日すら官報の暦要項が出ないと確定ではなかったりする。
Re: (スコア:0)
春分の日のことかな?
#いい加減なトコだと揉める
Re: (スコア:0)
そこで2048年バイナリ暦 [finetune.jp]採用ですよ
Re: (スコア:0)
そうしないと、グレゴリオ暦の紀元前660年2月11日に神武天皇が即位したとか言えませんからね。
建国記念の日は単なる紀元前660年の旧正月の日だったのですが。
Re: (スコア:0)
ずれるとして、前と後ろどっちにずれるんでしょうか?
もし蘇我入鹿を助けに行く羽目になったときのために、知っておきたいと。
# あ、俺Androidユーザだった
Re:全くの無意味 (スコア:3)
イルカを助けようとするとは、貴様、シーシェパードだな!
Re:全くの無意味 (スコア:2, おもしろおかしい)
イルカを助けようとするとは、貴様、シーシェパードだな!
いいえOfficeです
Re:全くの無意味 (スコア:1)
「お前を消す方法」の起源は中大兄皇子だったのか...
Re: (スコア:0)
閏月のせいで前にも後ろにもズレるよ。
乙巳の変なら、その時点ではまだ公式の元号は存在していない...
和暦(元嘉暦) 皇極天皇の四年六月十二日
ユリウス暦 紀元後645年7月10日
グレゴリオ暦 紀元後645年7月13日
最初の元号の大化元年はこの7日後に始まる。
Re: (スコア:0)
グレゴリオ暦から見ての話であれば、後ろ(未来日付方向)にずれることはないんじゃないかな。
中国暦ベースの太陰太陽暦では、立春(グレゴリオ暦では2/4あたり)近辺の新月が1月1日だから、
グレゴリオ暦の1月下旬~2月中旬あたりに、太陰太陽暦の1月1日がくることになり、
グレゴリオ暦から見て太陰太陽暦は、半月~ひと月半、日付が前(過去日付方向)にずれることになる。
Re:全くの無意味 (スコア:2)
そもそもローマ帝国だと、月の名前がついてない期間があるのと、
執政官の名前で年を呼ぶので、就任タイミングがわからないと
年が決まらない気が。
Re: (スコア:0)
まったく同じことを思った
たとえばグレゴリオ歴で1872年2月8日は明治四年の大晦日で、翌日の2月9日は明治五年正月元日になるのが当時の日本の暦だった。
和暦に対応させるならば過去に使われた暦を全て持ってないと混乱の元。
古代歴、元嘉暦、儀鳳暦、大衍暦、五紀暦、宣明暦、貞享暦、宝暦暦、修正宝暦暦、寛政暦、天保暦、くらいか?
#余談だが今民間で使われている「旧暦」は天保暦の定義と現代の天文計算を組み合わせたもの。
Re: (スコア:0)
天保歴の仕様バグで2033~2034年に六曜をどうするか現状未定 [wikipedia.org]なのよね。
Re:全くの無意味 (スコア:1)
旧暦2033年問題
(2033~2034年の期間に閏月を挿入する必要があるのだが、2033年閏7月/2033年閏11月/2034年閏正月の3つの候補があり、
いずれを選んだとしても天保暦での閏月選択ルールを満たさないため、どれを閏月にすればよいのかわからない、
閏月が決まらないため該当期間の旧暦月が定まらない、
旧暦月が定まらないため旧暦月日から算出する六曜も定まらない問題)
は、未定といえば未定なのだが、日本カレンダー暦文化振興協会の「2033年旧暦閏月問題の見解」
http://www.rekibunkyo.or.jp/year2033problem.html [rekibunkyo.or.jp]
で、「2033年閏11月を推奨する」という見解を出しており、一応の落着は得ていると思う。
暦文協が決める権限を持っているわけではないが、ほかの誰かがその権限を持っているわけでもなく、
デファクトスタンダードを作ることには成功したんじゃないかな。
Re: (スコア:0)
そうでもないんじゃない?
例えば本能寺の変って天正10年で西暦何年だったっけとか調べるのに…
> 天正11年(1583年)以前の元号が表示されないという不具合があるという。
(´・ω・`)
Re:全くの無意味 (スコア:1)
いや役にたたないでしょ。
豊臣秀次が関白になったのは、天正19年12月28日で、これは1591年って出てしまうと思うけど、グレゴリオ暦でもユリウス暦でも1592年の出来事。
Re: (スコア:0)
そうなんだよな……
(前に歴史小説のプロット書きに使えないかと試したけど、太陰暦未対応で諦めたクチ)
Re: (スコア:0)
Unixのcalコマンドでは、ユリウス暦とグレゴリオ暦を1752年9月で切り替えているようなのだが、iOSではどうしているのだろうか?
Re: (スコア:0)
こういう中途半端(というかシステムとしてまじめに利用すると欠陥品)は一番やっちゃダメだと思う。特にiOSみたいにシェアが大きいものでは。
そこらへんがAppleらしいといえばらしいけど
Re: (スコア:0)
>日本語版担当に拘った人がいたのでしょうねぇ。
大化の怪人とゆうことで