#! /usr/local/bin/perl -w # # calendarListBox.cgi -- カレンダーの生成(リストボックス使用) # # sample file name: calendarListBox.cgi use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); use lib "/home/fukazawa/myperl/lib"; use Calendar::Simple; my $q = new CGI; # create new CGI object my $mon = $q->param("month") || (localtime)[4] + 1; my $err = ''; my $thisYr = (localtime)[5] + 1900; my $yr = $q->param("year"); if (not defined $yr) { $yr = $thisYr; } elsif ($yr =~ /\D/) { $err = "入力された年 $yr が正しくありません"; $yr = $thisYr; } print $q->header(-charset=>'EUC-JP'), # HTTP ヘッダーの作成 $q->start_html( -title =>"カレンダー:$yr年$mon月", -lang =>'ja-JP', -charset => 'EUC-JP'), $q->table($q->Tr([ $q->th(['日', '月', '火', '水', '木', '金', '土', ]), map {$q->td(&dateAdjust($_))} calendar($mon, $yr), ])), $q->start_form, $q->textfield(-name=>'year', -default=>$yr, -size=>4), '年', $q->popup_menu(-name=>'month',-values=>[1..12],-default=>$mon), '月', $q->submit('表示'), $q->endform, $err, $q->end_html; # end the HTML sub dateAdjust { [ map { if (not defined($_)) { '  '; } elsif ($_ < 10) { ' '.$_; } else { $_; } } @{(shift)} ] }