是否有Perl模塊可以給我輸入月份和年份,比如06-2005,今年這個月的最後一天是什麼?對於這個例子,這很容易,因爲6月總是有30天,所以最後一天將是30-06-2005。但二月份情況並非如此。所以,如果我有02-1997,我想知道是返回28-02-1997還是29-02-1997。提前致謝。查找給定月份和特定年份的具體日期
0
A
回答
0
是的,在Date::Calc
模塊中有一個子程序Days_in_Month
。
use strict;
use warnings;
use Date::Calc qw/Days_in_Month/;
for my $m (1 .. 12) {
print Days_in_Month(2005, $m), "\n";
}
輸出
31
28
31
30
31
30
31
31
30
31
30
31
0
的最後一天,在一個給定的月份是在下個月的 「零」 的日子。 mktime()採用基於0的月份和基於1900的年份號碼,並返回一個紀元時間戳。
use POSIX qw(mktime strftime);
sub last_day {
my ($year, $mon) = @_;
return mktime(0,0,0, 0, $mon, $year-1900);
}
可以傳遞到localtime
或strftime
。
say scalar localtime last_day(2005, 5)
'Tue May 31 00:00:00 2005'
say scalar localtime last_day(2005, 6)
'Thu Jun 30 00:00:00 2005'
say scalar localtime last_day(1997, 2)
'Fri Feb 28 00:00:00 1997'
say scalar localtime last_day(2012, 2)
'Wed Feb 29 00:00:00 2012'
say (localtime last_day(1997, 2))[3]
'28'
say strftime "%d", localtime last_day(1997, 2)
'28'
0
正如有人說,使用DateTime
:
use DateTime;
my $dt = DateTime->last_day_of_month('year'=>2000, 'month'=>2);
print $dt->ymd; # '2000-02-29'
雖然日期時間可能不是處理日期/時間最快的模塊,它絕對是最完整的一個。它也是唯一一個正確處理日期/時間數學的各種怪癖。
相關問題
- 1. 給定年份和月份的特定日期的查找日期+ Sql Server 2005
- 2. 查找日期範圍一週的特定月份和年份
- 3. 在兩個日期之間查找特定月份和年份
- 4. 從給定日期獲取月份,日期和年份
- 5. 從特定日期獲取日期,月份和年份
- 6. 如何在給定年份和月份的星期日期PHP
- 7. 選擇最多的日期與給定的年份和月份
- 8. Scala - 獲取特定年份的所有月份和日期
- 9. 在特定的月份和年份中生成隨機日期
- 10. 從給定時間(Python)查找日期x年,月份
- 11. NSFetchRequest爲特定的月份和年份
- 12. 查找特定月份和年份的一週號碼
- 13. 大於指定日期(日期,月份,年份)的日期
- 14. Java - 格式化給定日期,月份和年份的日期整數
- 15. 爲特定月份和年份
- 16. 獲取特定年份和月份
- 17. 特定年份和月份的星期六和星期日的數量
- 18. 特定年份的sql日期四月份
- 19. 從日期查找唯一的月份和年份
- 20. CALM查詢以獲取任意年份的特定日期和月份
- 21. 在日期範圍之間查找特定月份的日期
- 22. 月份和年份的日期轉換
- 23. 計算月份和年份的日期
- 24. 特定日期和月份的預訂
- 25. 具有給定年份和月份的月份中的Python天數?
- 26. 計算一個給定日期的年份和年份
- 27. 如何從自定義日期範圍查找當前月份和年份?
- 28. java獲取給定月份和給定年份的第一個日期和最後一個日期
- 29. 添加年份,月份和日期C
- 30. 日期,月份和年份下拉框
看看[DateTime](http://datetime.perl.org)項目。 – 2012-01-09 16:41:54