@kyanny's blog

My life. Opinions are my own.

DateTime::Duration について少し理解を深めた

DateTime::Duration - daily dayflower に書いてあることが、以前読んだときはわからなかったけど読み直したらわかった。

# DateTime::Duration はわりと人間的に情報を持ってる

* たとえば DateTime(2006/08/18 12:34:56) - DateTime(2004/03/02 09:08:07) は DateTime::Duration(2y5m16d 3h26m49s) 的になる

# だから DateTime(2006/07/07) - DateTime(2006/06/06) と DateTime(2006/03/03) - DateTime(2006/02/02) は等価

* すなわち,これらの DateTime::Duration の「日数」を計算できない
* たとえ DateTime::Duration->in_units('days') したとしても
* なぜなら DateTime::Duration 自身は始点終点の情報をもってないから

http://d.hatena.ne.jp/dayflower/20060802/1154513496

この部分。「10/1 から 11/2」も「11/1 から 12/2」も同じ「一ヶ月と一日」だが、前者は 33 日で後者は 32 日というように、日数で比較すると同じではない。なので、日数の差を計算するための専用のやり方が必要だ、ということか。