• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ruby1.9での日付操作に関して。)

Ruby1.9での日付操作に関する質問

このQ&Aのポイント
  • Ruby1.9での日付操作に関して質問があります。主に文字列から日時に変換する方法と、通算日の数値から日付を求める方法についての質問です。
  • (1)文字列を日時に変換する方法について質問です。指定された形式の文字列を正しく日時に変換することができるのか、また範囲の拡張が可能なのかについて教えてください。
  • (2)通算日の数値から日付を求める方法について質問です。具体的な例題を挙げて、基準日付からの経過日数を日付に変換する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>20323.27430556の場合は、"1955-08-22 06:35:00"としたい。 もしやと思ったら、"1955-08-22 06:35:00" は、Excelで 20323.27430556 を日時書式で表示したときの値ですね。 Excel は、1900-01-00 00:00:00 という現実には存在しない日付をゼロとしているので、1日ずれます。さらに、1900-02-29 という現実には存在しない日付もカウントしているので、合計2日ずれます。 セルに、0 ~ 61 の数字を入れて、書式を日付にすると確認できます。 Excelの日付をシミュレートしたければ、DateTimeを使った上で上記の考慮が必要です。

NOBU4517
質問者

お礼

いつも丁寧なご回答有難う御座います。 結果が2日違う点も問題点だったのですが、お答え頂き有難うございました。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

(1) Timeクラスで扱うのが1970年1月1日午前0時からの経過秒数なので、それ以前の日付には対応していません。 DataTimeクラスを使うか、自作するかです。 (2) DateTimeを使うなら、 DateTime または Dateクラスの インスタンスメソッド「 + 」のマニュアルを読んでください。 ちなみに、20323.27430556足したら 1955-08-24T06:35:00+00:00 と2日違うんですけど

NOBU4517
質問者

お礼

DataTimeクラスを使うことで2つとも解決いたしました。 有難う御座います。

関連するQ&A