2006年11月10日金曜日

[Perl] スケジュール調整

メールでこんなマトリックス書いて会議などのスケジュール調整するときがあるけど、
浜田 松本 田中 遠藤
----------------------------------------------
11/11(土) × × ○ ○
11/12(日) × ○ × ×
11/13(月) ○ ○ ○ ○
11/14(火) ○ ○ × ○

毎回テキスト書くの面倒くせーと思って、perl でぺろっと作る。
date.pl
my $date_end = 7;
my @persons = qw(
浜田
松本
田中
遠藤
);
my $space = qw( );
my $kigo = qw(○);

# header
my $header;
$header = sprintf("%14s", $space);
for my $name (@persons) {
$header .= sprintf("%2s%s", $space, $name);
}
$header .= sprintf("\n----------------------------------------------\n");
printf("$header");

# list
for my $i (1..$date_end) {
my $time = $i ? ($i * 3600 * 24) + time() : time();
my($mday, $mon, $year, $wday) = ( localtime( $time ) )[3..6];
my $week = sprintf("%s", ("日", "月", "火", "水", "木", "金", "土")[$wday]);
my $rs = sprintf( "%02d/%02d(%s)%4s", $mon +1, $mday, $week, $space );
for (0..$#persons) {
$rs .= sprintf("%4s%s", $space, $kigo);
}
printf( "$rs\n" );
}

実行すると
# perl date.pl
浜田 松本 田中 遠藤
----------------------------------------------
11/11(土) ○ ○ ○ ○
11/12(日) ○ ○ ○ ○
11/13(月) ○ ○ ○ ○
11/14(火) ○ ○ ○ ○
11/15(水) ○ ○ ○ ○
11/16(木) ○ ○ ○ ○
11/17(金) ○ ○ ○ ○

という感じ。
Web化して、時間別なんかも設定できると便利かもしれないが、時間ないのであとで。

0 件のコメント: