⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dateconv.pl

📁 harvest是一个下载html网页得机器人
💻 PL
字号:
# $Id: dateconv.pl,v 2.1 1997/03/21 19:21:26 sxw Exp $# # Convert a date into a time.# By Lee McLoughlin <lmjm@doc.ic.ac.uk>#  You can do what you like with this except claim that you wrote it or#  give copies with changes not approved by Lee.  Neither Lee nor any other#  organisation can be held liable for any problems caused by the use or#  storage of this package.# # Revision 2.3  1994/01/28  17:58:21  lmjm# Added parsing of CTAN (tex archive) dates an the two common HTTP dates.## Revision 2.2  1993/12/14  11:09:05  lmjm# Correct order of packages.# Make sure use_timelocal defined.## Revision 2.1  1993/06/28  15:04:22  lmjm# Full 2.1 release## input date and time string from ftp "ls -l" format ("Feb 01 13:25"),# return data and time string in Unix format "dd Mmm YY HH:MM", "such as# "1 Feb 92 13:25"sub lstime_to_standard{	local( $ls ) = @_;	return &time_to_standard( &lstime_to_time( $ls ) );}$ENV{'HARVEST_HOME'} = "/usr/local/harvest" if (!defined($ENV{'HARVEST_HOME'}));unshift(@INC, "$ENV{'HARVEST_HOME'}/lib");	# use local installationrequire 'timelocal.pl';package dateconv;# Use timelocal rather than gmtime.$use_timelocal = 1;@months = ( "zero", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" );$month_num{ "jan" } = 0;$month_num{ "feb" } = 1;$month_num{ "mar" } = 2;$month_num{ "apr" } = 3;$month_num{ "may" } = 4;$month_num{ "jun" } = 5;$month_num{ "jul" } = 6;$month_num{ "aug" } = 7;$month_num{ "sep" } = 8;$month_num{ "oct" } = 9;$month_num{ "nov" } = 10;$month_num{ "dec" } = 11;( $mn, $yr ) = (localtime)[ 4, 5 ];# input date and time string from ftp "ls -l", such as Mmm dd yyyy or# Mmm dd HH:MM,# return $time number via gmlocal( $string ).sub main'lstime_to_time{	package dateconv;	local( $date ) = @_;	local( $mon, $day, $hours, $mins, $month, $year );	local( $secs ) = 0;	# Unix ls, dls and Netware	if( $date =~ /^(\w\w\w)\s+(\d+)\s+((\d\d\d\d)|((\d+):(\d+)))$/ ){		($mon, $day, $year, $hours, $mins) = ($1, $2, $4, $6, $7);	}	elsif( $date =~ /^(\d+)\s+(\w\w\w)\s+((\d\d\d\d)|((\d+):(\d+)))$/ ){		($day, $mon, $year, $hours, $mins) = ($1, $2, $4, $6, $7);	}	# VMS style	elsif( $date =~ /(\d+)-(\S+)-(\d+)\s+(\d+):(\d+)/ ){		($day, $mon, $year, $hours, $mins) = ($1, $2, $3, $4, $5);	}	# CTAN style (and HTTP)	elsif( $date =~ /^\w+\s+(\w+)\s+(\d+)\s+(\d+):(\d+):(\d+)\s+(\d+)/ ){		($mon, $day, $hours, $mins, $secs, $year ) =			($1, $2, $3, $4, $5, $6);	}	# another HTTP        elsif( $date =~ /^\w+,\s+(\d+)-(\w+)-(\d+)\s+(\d+):(\d+):(\d+)/ ){                ($day, $mon, $year, $hours, $mins, $secs ) =                        ($1, $2, $3, $4, $5, $6);        }	else {		printf STDERR "invalid date $date\n";		return time;	}		if( $mon =~ /^\d+$/ ){		$month = $mon - 1;	}	else {		$mon =~ tr/A-Z/a-z/;		$month = $month_num{ $mon };	}	if( $year !~ /\d\d\d\d/ ){		$year = $yr;		$year-- if( $month > $mn );	}	if( $year > 1900 ){		$year -= 1900;	}	 	if( $use_timelocal ){		return &'timelocal( $secs, $mins, $hours, $day, $month, $year );	}	else {		return &'timegm( $secs, $mins, $hours, $day, $month, $year );	}}# input time number, output GMT string as "dd Mmm YY HH:MM"sub main'time_to_standard{	package dateconv;	local( $time ) = @_;	local( $sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst ) =		 gmtime( $time );	return sprintf( "%2d $months[ $mon + 1 ] %2d %02d:%02d", $mday, $year, $hour, $min );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -