名前¶
Date::Range - 日付の範囲を扱う
概要¶
use Date::Range;
my $range = Date::Range->new($date1, $date2);
my $earliest = $range->start;
my $latest = $range->end;
my $days = $range->length;
if ($range->includes($date3)) { ... }
if ($range->includes($range2)) { ... }
if ($range->overlaps($range2)) {
my $range3 = $range->overlap($range2);
}
foreach my $date ($range->dates) { ... }
説明¶
日付を扱う場合、特定の日付だけではなく、日付の範囲の情報がほしいことがよくあります。たとえば、ある日付が特定の範囲にふくまれるかどうか、ある範囲と別の範囲が重なる場所はどこか、といったように、このモジュールで、こうした情報を得ることができます。
メソッド¶
new()¶
my $range = Date::Range->new($date1, $date2);
範囲オブジェクトを2つの日付で初期化します。2つの日付は、時系列順になっている必要はありません(内部でソートします)。
これらの日付は、Date::Simple クラスのインスタンスである必要があります。
start() / end()¶
my $earliest = $range->start;
my $latest = $range->end;
my $days = $range->length;
これらのメソッドは範囲の開始と終了の日付、範囲内の日数を返します。
equals¶
if ($range1->equals($range2)) { }
2つの日付が同じかどうか - つまり開始と終了が同じ日付かどうかを返します。
includes¶
if ($range->includes($date3)) { ... }
if ($range->includes($range2)) { ... }
このメソッドは、ある範囲が、ある日付またはある範囲を含むかどうかを返します。
overlaps / overlap¶
if ($range->overlaps($range2)) {
my $range3 = $range->overlap($range2);
}
これらのメソッドは、ある範囲が別の範囲に重なるかどうか、また重なる範囲を返します。
dates¶
foreach my $date ($range->dates) { ... }
範囲内にある日付を Date::Simple オブジェクトのリストで返します。
バグ¶
いまのところなし。
作者¶
Tony Bowden, <[email protected]>, based heavily on Martin Fowler's "Analysis Patterns 2" discussion and code at http://www.martinfowler.com/ap2/range.html
コピーライト¶
Copyright (C) 2001 Tony Bowden. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.