#最近做东西老用到处理时间的问题,索性写几个函数。
#!/usr/bin/perl -w
#===============================================================================
# Copyright (c) 2009,
# All rights reserved.
# 摘 要 :一些常用的时间处理函数
# 作 者 :2009-12-15 xingwang
# 版 本 :0.01
#===============================================================================
use strict;
# ------------------------------
# &subtime(date,n)
# 计算 某天的前 n 天或者后 n 天
# 参数:日期,前n天(n)或后n天(-n)
# ------------------------------
sub subtime {
my ($date,$number) = @_;
use HTTP::Date;
my $n = str2time($date);
$n += 86400 * $number;
my ($s,$mm,$h,$d,$m,$y) = (localtime($n))[0,1,2,3,4,5];
$y += 1900;
$m ++;
if ( $date =~ /:/ ) {
return sprintf("%4d-%02d-%02d %02d:%02d:%02d",$y,$m,$d,$h,$mm,$s);
} else {
return sprintf("%4d-%02d-%02d",$y,$m,$d);
}
}
print &submonth($ARGV[0],$ARGV[1]),"\n";
# ------------------------------
# &submonth(date,n)
# 计算 某天的前 n 月或者后 n 月
# 参数:日期,前n月(n)或后n月(-n)
# ------------------------------
sub submonth {
my ($date,$number) = @_;
use HTTP::Date;
my $n_temp = str2time($date);
my ($m_temp,$y_temp) = (localtime($n_temp))[4,5];
$y_temp += 1900;
$m_temp ++;
my %hs_monthDays = ('1'=>'31','3'=>'31','5'=>'31','7'=>'31','8'=>'31','10'=>'31','12'=>'31','4'=>'30','6'=>'30','9'=>'30','11'=>'30');
$hs_monthDays{'2'} = ($y_temp%4==0&&$y_temp%100!=0) || $y_temp%400==0 ? 29 : 28;
my $n = str2time($date);
my $monthdays = $hs_monthDays{$m_temp};
$n -= 86400 * $monthdays * $number;
my ($s,$mm,$h,$d,$m,$y) = (localtime($n))[0,1,2,3,4,5];
$y += 1900;
$m ++;
if ( $date =~ /:/ ) {
return sprintf("%4d-%02d-%02d %02d:%02d:%02d",$y,$m,$d,$h,$mm,$s);
} else {
return sprintf("%4d-%02d-%02d",$y,$m,$d);
}
}
# ------------------------------
# &nowtime()
# 当前时间
# ------------------------------
sub nowtime {
my ( $s,$min,$h,$d,$m,$y ) = (localtime(time()))[0,1,2,3,4,5];
$y += 1900;
$m ++;
return sprintf("%4d-%02d-%02d %02d:%02d:%02d",$y,$m,$d,$h,$min,$s);
}
# ------------------------------
# &nowdate()
# 当前日期
# ------------------------------
sub nowdate {
my ( $d,$m,$y ) = (localtime(time()))[3,4,5];
$y += 1900;
$m ++;
return sprintf("%4d-%02d-%02d",$y,$m,$d);
}
# ----------------------------------------------------
# &formatdate()
# 格式化日期
# 输入的格式:
# yyyy-mm-dd、yyyy-m-d、yyyymmdd、yyyy/mm/dd、
# yyyy/m/d、yyyy-mm、yyyy-m、yyyymm、yyyy/mm、yyyy/m
# ----------------------------------------------------
sub formatdate {
my $date = shift;
my $type = shift;
$date =~ /^(\d{4})[-\/](\d{2}|\d)[-\/](\d{2}|\d)$/g; # yyyy-mm-dd yyyy/mm/dd
$date =~ /^(\d{4})(\d{2})(\d{2})$/; # yyyymmdd
$date =~ /^(\d{4})(\d{2})$/; # yyyymm
$date =~ /^(\d{4})[-\/](\d{2}|\d)$/g; # yyyy-mm yyyy/mm
die "Format Date Erro:The date you input( $date ) is not correct." unless ( $1 or $2 );
if ( $type eq 'yyyymm' ) {
return sprintf("%04d%02d",$1,$2);
} elsif ( $type eq 'yyyymmdd' and $3) {
return sprintf("%04d%02d%02d",$1,$2,$3);
} elsif ( $type eq 'yyyy-mm-dd' and $3) {
return sprintf("%04d-%02d-%02d",$1,$2,$3);
} elsif ( $type eq 'yyyy-mm') {
return sprintf("%04d-%02d",$1,$2);
} elsif ( $type eq 'alldays' or $type eq 'endday' ) {
my $hs_monthDays = {'01'=>'31','03'=>'31','05'=>'31','07'=>'31','08'=>'31','10'=>'31','12'=>'31','04'=>'30','06'=>'30','09'=>'30','11'=>'30'};
$hs_monthDays->{'02'} = ($1%4==0&&$1%100!=0)||$1%400==0 ? 29 : 28;
return $hs_monthDays->{$2};
} else {
die "Format Date Erro:Return date ( Date = $date ,Type = $type ) is not correct."
}
}
posted @ 2010-01-07 19:23 大力 阅读(468) 评论(0)
编辑
中文安装:
一、解压eclipse-SDK-3.3-win32.zip到本地磁盘,打开eclipse.exe,待Eclipse启动后依次点击菜单 help->Software Updates->find and install,在出现的Install/Update对话框中选择‘Search for new features to Install’后点击Next。
二、在出现的Install对话框中的右侧,选择New Remote Site按钮,弹出如下图对话框,在Name处随意取个名字,在URL处填写http://download.eclipse.org/technology/babel/update-site/europa。其实是一个XML文件。
三、在下面出现的Update Site Mirrors 中选择最近的下载地址,在接下来的Update对话框中选择要现在的语言simplified chinese
四、点击Next之后出现Update Manager对话框,等待下载完成。
PERL插件
1.下载并安装windows下的Perl ActivePerl
2.Eclipse中安装EPIC,使Eclipse具有编辑Perl的功能:
Help->Software Update->Find and Install: select for new features to install.
name:EPIC
new remote site 中填入http://e-p-i-c.sourceforge.net/updates/testing。finish.
3.只有安装padwalker,Eclipse才能调试Perl:
运行Perl Package Manager。Edit->Perferences->Respositories中填入http://www.bribes.org/perl/ppm/。然后安装padwalker。
再运行
D:\Perl\bin>ppm install padwalker
Downloading PadWalker-1.9...done
Unpacking PadWalker-1.9...done
Generating HTML for PadWalker-1.9...done
Updating files in site area...done
6 files installed
posted @ 2010-01-07 10:57 大力 阅读(342) 评论(0)
编辑