home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/perl
-
- $[ = 1;
-
- $CALPATH = '/usr/bin/cal';
-
- ($program = $0) =~ s%.*/%%;
-
- ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
-
- @months = ( "january ", "february", "march", "april", "may", "june",
- "july", "august", "september", "october", "november",
- "december" );
-
- $mon++;
- $year += 1900;
-
- if ($#ARGV == 0) {
- do cal($mon, $year);
- }
-
- if ($#ARGV > 2) {
- print stderr "usage: $program [month] year\n";
- exit 1;
- }
-
- if ($#ARGV == 2) {
- $year = $ARGV[2];
- }
-
- if ($ARGV[1] =~ /^\d+$/) {
- if ($ARGV[1] > 12) {
- die "month too big" if $#ARGV == 2;
- do cal($ARGV[1]);
- } else {
- do cal($ARGV[1], $year);
- }
- } else {
- do cal(&getmonth($ARGV[1]), $year);
- }
-
-
- sub cal {
- die "year too big" if $_[2] > 9999;
- exec $CALPATH, @_;
- die "can't exec $CALPATH: $!";
- }
-
- sub getmonth {
- local($mon) = @_;
-
- for ($i = 1; $i <= 12; $i++) {
- return $i if $months[$i] =~ /^$mon/oi;
- }
-
- die "$mon is not a month name";
- }
-