Time::Bandなるモジュールを作ってみた。

時間の帯です。

今のところ機能は…。

全体の時間から、部分的な時間を取り除いて、残った部分の時間を返すってくらいです。

スケジュール系で、残りの時間を確認したい時なんかに使えるかと。

use Time::Band;
use Time::Piece;

my $start = localtime()->strptime("2012-01-10 09:00:00","%Y-%m-%d %H:%M:%S");
my $end = localtime()->strptime("2012-01-10 21:00:00","%Y-%m-%d %H:%M:%S");

my $band = Time::Band->new(start=>$start,end=>$end); #new(始まりの時間,終わりの時間)

#昼食
my $lunch = localtime()->strptime("2012-01-10 12:30:00","%Y-%m-%d %H:%M:%S");
$band->add_except($lunch,$lunch+3600); #除く時間を追加する add_except(除く時間の始まり、除く時間の終わり)
#夕食
my $supper = localtime()->strptime("2012-01-10 18:30:00","%Y-%m-%d %H:%M:%S");
$band->add_except($supper,$supper+1800);

my $result_band_time = $band->result;

#それぞれTime::Pieceで返ってくる。
#[
# [2012-01-10 09:00:00,2012-01-10 12:30:00],
# [2012-01-10 13:30:00,2012-01-10 18:30:00],
# [2012-01-10 19:00:00,2012-01-10 21:00:00],
#];


テストはまだまだ充実していないので、ご注意ください。
https://github.com/rozary/p5-Time-Band