|
PERL Subroutine for Making Nice Y2K Compliant Dates
#!/usr/bin/perl
$nicedate=&mdydate(time,"/","mmddyyyy");
print "$nicedate\n";
#
# return a y2k compliant date
#
sub mdydate() {
#
# send time (integer), delimiter, and format string
# returns nice date
# by default- returns date as MMDDYYYY with no delimiter
# if called as mdydate(time)
#
my($in_time,$delim,$format) = @_;
$format=~tr/[A-Z]/[a-z]/;
%mn = ('Jan','01', 'Feb','02', 'Mar','03', 'Apr','04',
'May','05', 'Jun','06', 'Jul','07', 'Aug','08',
'Sep','09', 'Oct','10', 'Nov','11', 'Dec','12' );
my $sydate=localtime($in_time);
my ($day, $month, $num, $time, $year) = split(/\s+/,$sydate);
my $zl=length($num);
if ($zl == 1) {
$num = "0$num";
}
if ($format eq "") {
return "$mn{$month}$delim$num$delim$year"; #default MMDDYYYY
}
if ($format=~/yyyy/) {
$year=$year;
}
else {
$year = substr($year,2,2);
}
if ($format eq "mmddyyyy") { return "$mn{$month}$delim$num$delim$year";}
if ($format eq "yyyymmdd") { return "$year$delim$mn{$month}$delim$num";}
if ($format eq "ddmmyyyy") { return "$num$delim$mn{$month}$delim$year";}
if ($format eq "mmddyy") { return "$mn{$month}$delim$num$delim$year";}
if ($format eq "yymmdd") { return "$year$delim$mn{$month}$delim$num";}
if ($format eq "ddmmyy") { return "$num$delim$mn{$month}$delim$year";}
}
|