#!/usr/bin/perl #time,localtime,gmtime require "timelocal.pl"; #for timelocal, timegm #--------------------------------------------------------------------# sub jlocaltime { #--------------------------------------------------------------------# my ($time) = @_; my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time); $year+=1900; $mon ++; ($year,$mon,$mday,$hour,$min,$sec); } #---------------------------------------------------------------------# sub jtimelocal { #---------------------------------------------------------------------# my ($jyear,$jmonth,$jday,$jhour,$jmin,$jsec) = @_; $jmonth --; my $jtime = timelocal($jsec,$jmin,$jhour,$jday,$jmonth,$jyear); return $jtime; } #---------------------------------------------------------------------# sub jtimelocal1 { #---------------------------------------------------------------------# my ($jyear,$jmonth,$jday,$jhour,$jmin,$jsec) = @_; if( $jyear > 1900) { $jyear -= 1900;} elsif($jyear < 70) { $jyear += 100;} $jmonth --; $stime = sprintf("%d%02d%02d%02d%02d%02d", $jyear,$jmonth,$jday,$jhour,$jmin,$jsec); my $imin=1; my $imax=2000000000; do { $imid = int(($imax + $imin)/2); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($imid); $itime = sprintf("%d%02d%02d%02d%02d%02d", $year,$mon,$mday,$hour,$min,$sec); if($stime < $itime) { $imax = $imid;} elsif($stime > $itime) { $imin = $imid;} else { $imax = $imid; $imin = $imid;} } while(($imax - $imin)>1); return $imid; } #--------------------------------------------------------------------# sub jtimeread { #--------------------------------------------------------------------# my (@times) = @_; my $stime = join(' ',@times); my ($jyear,$jmonth,$jday,$jhour,$jmin,$jsec) = split(/[-_\.\:\s]/,$stime); return($jyear,$jmonth,$jday,$jhour,$jmin,$jsec); } #--------------------------------------------------------------------# sub btimeread { #--------------------------------------------------------------------# my ($stime) = @_; @times = split('',$stime); $jyear = join('',@times[ 0.. 3]); $jmonth= join('',@times[ 4.. 5]); $jday = join('',@times[ 6.. 7]); $jhour = join('',@times[ 8.. 9]); $jmin = join('',@times[10..11]); $jsec = join('',@times[12..13]); return($jyear,$jmonth,$jday,$jhour,$jmin,$jsec); } 1;