Có cách nào để tìm ra ngày đầu tiên của tháng (ngày tối thiểu) và ngày cuối cùng của tháng (ngày tối đa), cho tháng làm đầu vào, sử dụng DateTime
trong perl không?Làm cách nào để có được ngày đầu tiên và ngày cuối cùng của tháng với Thời gian chờ của Perl?
Cho đến nay, tôi đã tìm ra cách để vượt qua trong một ngày đầu tiên, ngày cuối cùng để cho tôi một loạt các ngày.
Nhưng những gì tôi muốn làm bây giờ chỉ là vượt qua trong một tháng làm đối số, giả sử 201203
và trả lại phút, tối đa.
Điều đó có thể xảy ra với DateTime không?
Ngoài ra, tôi muốn thay đổi mặt nạ định dạng ngày từ YYYYMMDD thành YYYY-MM-DD.
use strict;
use warnings;
use DateTime;
unless(@ARGV==2)
{
print "Usage: myperlscript first_date last_date\n";
exit(1);
}
my ($first_date,$last_date)[email protected];
my $date=DateTime->new(
{
year=>substr($first_date,0,4),
month=>substr($first_date,4,2),
day=>substr($first_date,6,2)
});
while($date->ymd('') le $last_date)
{
print $date->ymd('') . "\n";
#$date->add(days=>1); #every day
$date->add(days=>30);
}
Kết quả mong đợi:
2012-03-01
2012-03-31
Ngày tối thiểu luôn là 1! – theglauber