3 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
#!/usr/bin/perl
use strict;
use warnings;
use Time::Local; #自帶日期模塊
my $input = shift;
my ($year, $mon, $day) = $input=~/(\d{2})(\d{2})(\d{2})/;
my $today = time();
my $other_day = timelocal(0,0,0,$day,$mon-1, $year);
my $diff = $other_day - $today;
printf "It is %.2f days ", abs($diff/(60*60*24));
print $diff>0? "in the future\n" : "ago\n";

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
模塊不用另外裝的。本來(lái)就有,連載入都不用啊,除非你的版本特別老?
以下是一些時(shí)間的常見(jiàn)用法。你自己直接用這些函數(shù)就好了,我做了簡(jiǎn)單的注解。
my $t=time; # 得到時(shí)間,不過(guò)是一串?dāng)?shù)字
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($t); #也可以用=gmtime
$year+=1900; # $year變量的意思是since 1900
my @months = qw (Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); # count since 0
message("$year-$months[$mon]-$mday $hour:$min:$sec, isdst: $isdst, day: $mday"); # number of seconds since Jan 1st, 1970

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
程序我沒(méi)有辦法幫你實(shí)現(xiàn)了。我只能告訴你思路。把你的輸入的日期 轉(zhuǎn)換為unix時(shí)間截,然后再取系統(tǒng)時(shí)間截 。時(shí)間截好像是從1970-01-01 00:00:00 開(kāi)始算起的。通常是一組數(shù)字,如
[fy138@mail ~]$ perl -e 'print time()'
1313997257
- 3 回答
- 0 關(guān)注
- 495 瀏覽
添加回答
舉報(bào)