時間の帯です。
今のところ機能は…。
全体の時間から、部分的な時間を取り除いて、残った部分の時間を返すってくらいです。
スケジュール系で、残りの時間を確認したい時なんかに使えるかと。
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