亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

perl不用模塊計算指定日期和今天相差天數

perl不用模塊計算指定日期和今天相差天數

幕布斯7119047 2019-05-31 03:02:21
調用格式 perl xxx.pl YYMMDD 指定日期早于或等于今天輸出相差天數 如果指定日期比今天早,則輸出負數如果用模塊的話,確實有相應的函數,但是還要在機子上安裝模塊,太麻煩了所以最好不用模塊計算原來有一個思路,就是從今天向前循環,如果循環到某天符合指定日期,則輸出總感覺這種方法太笨了,有什么好方法沒,謝謝
查看完整描述

3 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

#!/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";



查看完整回答
反對 回復 2019-06-01
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

模塊不用另外裝的。本來就有,連載入都不用啊,除非你的版本特別老?
以下是一些時間的常見用法。你自己直接用這些函數就好了,我做了簡單的注解。

my $t=time; # 得到時間,不過是一串數字
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





查看完整回答
反對 回復 2019-06-01
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

程序我沒有辦法幫你實現了。我只能告訴你思路。把你的輸入的日期 轉換為unix時間截,然后再取系統時間截 。時間截好像是從1970-01-01 00:00:00 開始算起的。通常是一組數字,如
[fy138@mail ~]$ perl -e 'print time()'
1313997257

查看完整回答
反對 回復 2019-06-01
  • 3 回答
  • 0 關注
  • 496 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號