#!/usr/local/bin/perl
package date;
require 'timelocal.pl';
sub time2rfc{
local($now) = @_;
local($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($now);
$mon = ("Jan","Feb","Mar","Apr","May","Jun"
,"Jul","Aug","Sep","Oct","Nov","Dec")[$mon];
$wday = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat")[$wday];
sprintf("$wday, %2.2d $mon %4.4d %2.2d:%2.2d:%2.2d GMT"
,$mday,$year+1900,$hour,$min,$sec);
}
sub time2plain{
local($now) = @_;
local($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($now);
sprintf("%4.4d/%2.2d/%2.2d %2.2d:%2.2d:%2.2d"
,$year+1900, $mon+1, $mday, $hour, $min, $sec);
}
sub rfc2plain{
local($now, $count) = @_;
local($mday, $mon, $year, $hour, $min, $sec) = $now =~ /[^,]+,\s*(\d+)[- ]+(\w+)[- ]+(\d+)\s+(\d+):(\d+):(\d+)/;
foreach("Jan","Feb","Mar","Apr","May","Jun"
,"Jul","Aug","Sep","Oct","Nov","Dec"){
$mon = $count ,last if $mon =~ /$_/i;
$count++;
}
$year -= 1900 if $year > 1900;
sprintf("%4.4d/%2.2d/%2.2d %2.2d:%2.2d:%2.2d",
$year+1900, $mon+1, $mday, $hour, $min, $sec);
}
sub rfc2plain2{
### JST以外にも対応
local($time);
local($now, $count) = @_;
local($mday, $mon, $year, $hour, $min, $sec, $timezone) = ($now =~ /(?:[
^,]+,)?\s*(\d+)[- ]+(\w+)[- ]+(\d+)\s+(\d+):(\d+):(\d+)\s+([+-]\d{4})?/);
foreach("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov
","Dec") {
$mon = $count ,last if $mon =~ /$_/i;
$count++;
}
$year -= 1900 if $year > 1900;
if($timezone){
$timezone /= 100;
$time = timegm($sec, $min, $hour, $mday, $mon, $year);
$time -= $timezone * 60*60;
($sec, $min, $hour, $mday, $mon, $year) = localtime($time);
}
$year -= 100 if $year > 99;
sprintf("%2.2d/%2.2d/%2.2d %2.2d:%2.2d",
$year, $mon + 1, $mday, $hour, $min);
}
sub rfc2time{
local($now, $count) = @_;
local($mday, $mon, $year, $hour, $min, $sec) = $now =~ /[^,]+,\s*(\d+)[- ]+(\w+)[- ]+(\d+)\s+(\d+):(\d+):(\d+)/;
return unless $mday;
foreach("Jan","Feb","Mar","Apr","May","Jun"
,"Jul","Aug","Sep","Oct","Nov","Dec"){
$mon = $count ,last if $mon =~ /$_/i;
$count++;
}
$year -= 1900 if $year > 1900;
timelocal($sec,$min,$hour,$mday,$mon,$year);
}
1;