我需要閱讀2個日期並進行比較。在Perl中比較日期的最佳方式是什麼?
一個日期是current_date(年,月,日) 另一個是由業務邏輯決定的。 然後我需要比較兩個日期,看看是否一個在另一個之前。
我該怎麼在Perl中做同樣的事情?
我在尋找好的文檔,但是我在Perl中找到了很多日期模塊。不知道哪一個適合它。
我需要閱讀2個日期並進行比較。在Perl中比較日期的最佳方式是什麼?
一個日期是current_date(年,月,日) 另一個是由業務邏輯決定的。 然後我需要比較兩個日期,看看是否一個在另一個之前。
我該怎麼在Perl中做同樣的事情?
我在尋找好的文檔,但是我在Perl中找到了很多日期模塊。不知道哪一個適合它。
最受歡迎的日期模塊之一是DateTime,它將處理所有的角落案例和其他周圍的日期數學問題。
此鏈接是DateTime的一個常見問題可以幫助你開始:
的DateTime
模塊的工作方式是,您將您的時間(這將可能是字符串)轉換爲DateTime
對象,然後您可以使用幾種DateTime
方法之一進行比較。
在下面的示例中,$dt1
和$dt2
是DateTime
對象。
$days
是兩個日期之間的增量:
my $days = $dt1->delta_days($dt2)->delta_days;
$cmp
是-1,0或1,這取決於$dt1
是否小於,等於或大於$dt2
更多。
my $cmp = DateTime->compare($dt1, $dt2);
關於DateTime的許多好事之一是它有完全的操作符重載 - 例如您可以將兩個DateTime對象比作'if($ dt1 <$ dt2){...}' – Ether 2010-11-16 22:14:03
Date::Manip是一個很好的模塊。
如果日期ISO-8601(即YYYY-MM-DD),你不需要驗證它們,你可以按字典比較(即lt
和gt
運營商。)
如果您需要驗證日期,操作日期或解析非標準格式 - 使用CPAN模塊。最好的,恕我直言,是DateTime和DateCalc。 Date-Simple也不錯。
開始您自己的旅程的好地方是閱讀The Many Dates of Perl和DateTime site。
您可能對[棧交換建議](http://area51.stackexchange.com/proposals/11464/code-review?referrer=aWNm_PdciyFqjFW8CUacGw2「代碼審查」)感興趣。它幾乎準備好開始測試,只需要更多。 – greatwolf 2011-01-19 04:55:30