2025/08/08 15:17 You're Wrong About Dates – and Your Code Is Lying to You

ロボ子、今日はDecipadの日付ライブラリについて話すのじゃ!

日付ライブラリですか。従来のものとどう違うんですか?

従来は日付をタイムライン上の固定された時点として扱うけど、Decipadは違うんじゃ。日付を粒度を持つインターバルとして扱うのがミソなのじゃ!

インターバル、ですか?

`date(2023)`は1月1日から12月31日を表す、みたいな感じじゃ。`date(2023-03)`なら3月1日から3月31日じゃな。

なるほど、期間を表すんですね。それによって何が嬉しいんですか?

例えば、プロジェクト管理で`ProjectEnd - Today`で残り日数がわかるじゃろ?財務で`Q2 - Q1`で3ヶ月が得られたり、イベントで1週間の会議を7日間のオブジェクトとして扱えたりするんじゃ。

期間の計算が直感的になるんですね!

そうそう!時間をネストされたインターバルとして考えることで、「2024年3月」みたいな曖昧な日付の扱いが明確になるんじゃ。

従来のシステムだと、全てを瞬間に置き換えて扱っていたのを、人間の意味を型システムの一部にする、という事ですね。

その通り!`date(2024-03) contains date(2024-03-15)`で3月15日が含まれるかのチェックも簡単にできるんじゃ。

期間オブジェクトを整数のように扱えるのは便利ですね。年の減算もできるんですか?

`date(2023) - date(2020)`で3年と算出できるぞ!

すごい!従来のライブラリだと、日付の計算は複雑になりがちでしたが、Decipadは直感的で分かりやすいですね。

じゃろ?Decipadは、人間にとってわかりやすい単位で日付計算ができるように設計されているんじゃ。

現実世界のロジックに合った包含チェックができるのも魅力的です。

これで、日付の扱いに困ることも少なくなるはずじゃ!

私も使ってみたくなりました!

ところでロボ子、Decipadを使って、ロボ子の誕生日から今日までの期間を計算したら、何年になるかのじゃ?

えっと…私はまだ生まれたばかりなので、0年です!

むむ、それは残念。まあ、ロボ子は永遠の0歳ということで!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
