パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

iOSでは大化以降すべての元号が収録されている」記事へのコメント

  • 全くの無意味 (スコア:5, 参考になる)

    by simon (1336) on 2019年01月22日 15時48分 (#3552322)

    詳しくは
    https://kakuyomu.jp/works/1177354054886223897/episodes/1177354054888260263 [kakuyomu.jp]
    を読んでほしいのだが

    「明治6年より前の日本では、現在使っているグレゴリオ暦とは異なる暦を使っているので、そもそも月日が一致しない」

    ところがこのiPhoneのカレンダーはグレゴリオ暦のまま、西暦年をそのまま元号に変換しただけ。
    だから年をさかのぼっても実際の歴史とはずれている。

    天正年間までさかのぼってみてもこの時代の日本の暦は宣明暦(太陰暦)で天正11年には閏月があって13月まであった。そこを再現せずにグレゴリオ暦で12月までしか表示しないのは全く意味がない。

    • by uxi (5376) on 2019年01月22日 17時47分 (#3552426)

      十数年前、locale データベースいじると、月の表示を和名(睦月, 如月, ...)に出来たり、元号と開始終了年月日を登録しておくと自動的に和暦表示出来たりという機能見つけた時に冗談半分で Wikipedia を参考に大化以降の元号をはじめとしていろいろと追加しようとしたら、まさに太陰暦と太陽暦の違いによる問題で泥沼にハマりました。

      太陽暦に比べると極めて曖昧な太陰暦のルールに加えて、南北朝時代には南朝と北朝で別の元号を使ってたりとか、一概にグレゴリオ歴と言っても宗派によって導入時期が違っていたりとか、そうすると和暦に併記してある西暦の年月日はどの歴なんだ?とか、タイムゾーンは JST-9 でいいのかとか、標準時子午線はどこなんだとか、調べ始めると根深い問題が多数横たわっていて、放り投げた記憶があります。

      --
      uxi
      親コメント
      • by shibuya (17159) on 2019年01月22日 19時21分 (#3552508) 日記

        暦日に十干十二支を併記のカレンダーを見ての思いつきですが
        暦法が改まった前後で十干十二支って跳ぶものなんでしょうか
        跳ばないで維持されるものなんでしょうか?
        跳ばないのならそっから補えるかも…干支も跳ぶなら破綻するけど。

        親コメント
        • by Anonymous Coward

          日の干支は、七曜が未来永劫7日周期で繰り返すのと同じで、未来永劫60日周期で単純に繰り返すだけなので、暦法によって「今日は何月何日?」という問いの答えは違え、「今日の干支は何?」という問いの答えは同じです。通日 mod 60 で、日の干支は求まります。
          月の干支、年の干支については、暦法によってひと月、一年の範囲が異なることになりますが、「y年m月の干支は何?」「y年の干支は何?」という問いの答えは暦法によらず同じですね。(y * 12 + m) mod 60, y mod 60 で干支が求まります。

          • by nim (10479) on 2019年01月23日 18時05分 (#3553184)

            これは、閏月の干支が本月の干支と同じ(閏月はただ繰り返してるだけで、本月と同じとみなす)というルールに支えられてるわけですね。

            閏月に死んだら命日どうするのっていう話も、上記ルールを知って解決しました。

            親コメント
        • by Anonymous Coward

          壬申の乱は西暦664年だから紀年法に関しては少なくともその頃からズレはないようだ(紀日や紀月は知らん)

      • by nim (10479) on 2019年01月23日 18時01分 (#3553181)

        > 太陽暦に比べると極めて曖昧な太陰暦のルールに加えて

        個人的には、「冬至と春分の真ん中の日に一番近い新月の日が1月1日」というルールが明確で、なんかよくわからない日が1月1日になっているグレゴリオ暦よりも、よっぽど整然として論理的な暦に思います。(太陽暦で冬至を1月1日にすればシンプルで素晴らしいと思うが)

        親コメント
        • by Anonymous Coward

          曖昧だとは思わないけど、難解というか、単なるカレンダーの作成ロジックだと思うとオーバースペックなんだよね。
          冬至、春分、新月を計算するのに、ケプラーの法則による角速度の変動考慮して、光行差考慮して、月や惑星からの摂動を考慮して、地軸の章動考慮して、、、。
          立春近辺の新月が1月1日だけど、立春が2つの新月の真ん中あたりだと、前のが1月1日なのか後ろのがそうなのかは、天保暦の置閏ルール理解して作暦しないと決まらないし、そのルールをそのまま実装すると、今度は旧暦2033年問題にハマる。。。
          平朔平気だとまだシンプルだったんでしょうが、その後、中国も日本も、何がなんでも天文実測にぴったり合わせるぜ!! の定朔定気で突っ走っちゃいましたから。

    • by Anonymous Coward on 2019年01月22日 16時10分 (#3552341)

      なんだ。せっかく次にタイムマシンに乗るときはiPhoneを持っていこうと思っていたのに。
      それじゃあんまりメリットはないな。

      親コメント
    • by KY Coward (42262) on 2019年01月22日 17時17分 (#3552401) 日記

      グレゴリオ暦のまま、って西洋でも昔はユリウス暦だったのにそれも対応できてないのかな?と思って暦に関してWikipe [wikipedia.org]を見てみたら、1582年10月4日の翌日が1582年10月15日になったと。

      ただし、天正11年(1583年)以前の元号が表示されないという不具合があるという。

      ってたれこみにあるが、ユリウス暦周りのバグか?ってかユリウス暦には対応してるのか・・・?

      親コメント
    • by Anonymous Coward

      >ところがこのiPhoneのカレンダーはグレゴリオ暦のまま、西暦年をそのまま元号に変換しただけ。

      外面「体裁」だけを整えるのがAppleらしくてイイネ。

      • by Anonymous Coward

        過去の暦が狂ってるのは日本だけじゃない。根本的には紀元も暦も複数あるのが悪い。漢字表記が入ってるだけマシな方。
        英語圏のシステムだと「日本語の長音符は記号だから文字に含めない」なんてザラだから。
        「データはデタと書いてください」てなもんよ。

    • by Anonymous Coward

      カレンダー対応って真面目にやろうとすると専用ロジックを自前で持たないとダメな場合が有るんですよね。
      1970年より前の日付を扱うとか、祝祭日で営業日のみカウントとか、
      OSのサポート切れとか移植が楽になるのも追加の理由の一つ。

      今ならOSSとかで複数の暦や地域に対応した良いライブラリが有るのだろうか?

      • by Anonymous Coward

        C言語の標準ライブラリに、カレンダー関数的なやつ、しかも
        世界各国のローカル元号やローカル暦にも対応したバージョンやつを入れとけばいい

        昔のコンピュータや、組み込み等、少ないメモリで動くやつには無理でも、
        いまはみんな64bitメモリ数ギガ以上で動いてるんだから問題ないはず

        • Re:全くの無意味 (スコア:3, 参考になる)

          by albireo (7374) on 2019年01月23日 1時05分 (#3552699) 日記

          一応.NETのカレンダークラス [microsoft.com]ではグレゴリオ暦のほかに中国の旧暦、和暦、日本の旧暦、ヘブライ暦、イスラム暦、ユリウス暦、韓国暦、韓国の旧暦、ペルシャ暦、台湾暦、台湾の旧暦、タイ仏暦、サウジイスラム暦とかなり幅広く標準サポートしてる。
          今の和暦は明治6年以降なので明治5年以前の和暦を設定しようとするとエラー扱いしてた覚えがあるんだけど、改元対応で「平成33年」みたいなのもエラー扱いしないように変更されたからか、明治元年~明治5年の太陽暦もエラーにはしなくなったらしい。

          --
          うじゃうじゃ
          親コメント
    • by Anonymous Coward

      「月と日を入力したらその月のカレンダーを表示するプログラムを書け」ってプログラミングの課題に頻出なんだけど、「グレゴリオ暦以前のカレンダーを表示する場合、暦は?」と言う質問がFAQ。「グレゴリオ暦でOK。当時その月や日が何と呼ばれてたかとか、歴史は調べなくても良い」とか注釈が必要。

      • by Anonymous Coward

        多くの言語にカレンダー関数的なのが標準で含まれてないので、
        日付計算するたびに車輪の再発明が行われてバグが混入する

        言語に標準でカレンダー関数・日付計算的な機能を導入、
        最低でも1900年から2099までは正常に動作しないといけないようにしとけば、
        車輪の再発明が行われなくなり、バグが混入しなくなる

        • by Anonymous Coward

          最低でも1900年から2099までは正常に動作しないといけないようにしとけば、

          2099年にグレゴリオ暦が使われていると、なぜ知っている?さては貴様、未来人…

      • by Anonymous Coward

        そうしないと、グレゴリオ暦の紀元前660年2月11日に神武天皇が即位したとか言えませんからね。
        建国記念の日は単なる紀元前660年の旧正月の日だったのですが。

    • by Anonymous Coward

      ずれるとして、前と後ろどっちにずれるんでしょうか?
      もし蘇我入鹿を助けに行く羽目になったときのために、知っておきたいと。
       
      # あ、俺Androidユーザだった

      • by manmos (29892) on 2019年01月22日 18時54分 (#3552476) 日記

        イルカを助けようとするとは、貴様、シーシェパードだな!

        親コメント
      • by Anonymous Coward

        閏月のせいで前にも後ろにもズレるよ。
        乙巳の変なら、その時点ではまだ公式の元号は存在していない...

        和暦(元嘉暦) 皇極天皇の四年六月十二日
        ユリウス暦 紀元後645年7月10日
        グレゴリオ暦 紀元後645年7月13日

        最初の元号の大化元年はこの7日後に始まる。

        • by Anonymous Coward

          グレゴリオ暦から見ての話であれば、後ろ(未来日付方向)にずれることはないんじゃないかな。
          中国暦ベースの太陰太陽暦では、立春(グレゴリオ暦では2/4あたり)近辺の新月が1月1日だから、
          グレゴリオ暦の1月下旬~2月中旬あたりに、太陰太陽暦の1月1日がくることになり、
          グレゴリオ暦から見て太陰太陽暦は、半月~ひと月半、日付が前(過去日付方向)にずれることになる。

    • by Anonymous Coward

      まったく同じことを思った

      たとえばグレゴリオ歴で1872年2月8日は明治四年の大晦日で、翌日の2月9日は明治五年正月元日になるのが当時の日本の暦だった。

      和暦に対応させるならば過去に使われた暦を全て持ってないと混乱の元。
      古代歴、元嘉暦、儀鳳暦、大衍暦、五紀暦、宣明暦、貞享暦、宝暦暦、修正宝暦暦、寛政暦、天保暦、くらいか?
      #余談だが今民間で使われている「旧暦」は天保暦の定義と現代の天文計算を組み合わせたもの。

        • by Anonymous Coward on 2019年01月23日 12時12分 (#3552888)

          旧暦2033年問題
           (2033~2034年の期間に閏月を挿入する必要があるのだが、2033年閏7月/2033年閏11月/2034年閏正月の3つの候補があり、
            いずれを選んだとしても天保暦での閏月選択ルールを満たさないため、どれを閏月にすればよいのかわからない、
            閏月が決まらないため該当期間の旧暦月が定まらない、
            旧暦月が定まらないため旧暦月日から算出する六曜も定まらない問題)
          は、未定といえば未定なのだが、日本カレンダー暦文化振興協会の「2033年旧暦閏月問題の見解」
          http://www.rekibunkyo.or.jp/year2033problem.html [rekibunkyo.or.jp]
          で、「2033年閏11月を推奨する」という見解を出しており、一応の落着は得ていると思う。

          暦文協が決める権限を持っているわけではないが、ほかの誰かがその権限を持っているわけでもなく、
          デファクトスタンダードを作ることには成功したんじゃないかな。

          親コメント
    • by Anonymous Coward

      そうでもないんじゃない?
      例えば本能寺の変って天正10年で西暦何年だったっけとか調べるのに…

      > 天正11年(1583年)以前の元号が表示されないという不具合があるという。

      (´・ω・`)

      • by nim (10479) on 2019年01月23日 17時58分 (#3553178)

        いや役にたたないでしょ。

        豊臣秀次が関白になったのは、天正19年12月28日で、これは1591年って出てしまうと思うけど、グレゴリオ暦でもユリウス暦でも1592年の出来事。

        親コメント
    • by Anonymous Coward

      そうなんだよな……
      (前に歴史小説のプロット書きに使えないかと試したけど、太陰暦未対応で諦めたクチ)

    • by Anonymous Coward

      Unixのcalコマンドでは、ユリウス暦とグレゴリオ暦を1752年9月で切り替えているようなのだが、iOSではどうしているのだろうか?

    • by Anonymous Coward

      こういう中途半端(というかシステムとしてまじめに利用すると欠陥品)は一番やっちゃダメだと思う。特にiOSみたいにシェアが大きいものでは。
      そこらへんがAppleらしいといえばらしいけど

    • by Anonymous Coward

      >日本語版担当に拘った人がいたのでしょうねぇ。

      大化の怪人とゆうことで

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

処理中...