Как я могу получить первый и последний день месяца с помощью Perl& #39;s DateTime?

Есть ли способ выяснить первый день месяца (min day )и последний день месяца (max day ), учитывая месяц в качестве входных данных, используя DateTimeв perl?

До сих пор я понял, как передать первое свидание, последнее свидание, чтобы получить диапазон дней.

Но сейчас я хочу просто передать месяц в качестве аргумента, скажем, 201203и вернуть min, maxday.

Возможно ли это с DateTime?

Кроме того, я хочу изменить маску формата даты с ГГГГММДД на ГГГГ -ММ -ДД.

    use strict;
    use warnings;
    use DateTime;

    unless(@ARGV==2)
    {
        print "Usage: myperlscript first_date last_date\n";
        exit(1);
    }

    my ($first_date,$last_date)=@ARGV;

    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);
}

Ожидаемые результаты:

2012-03-01
2012-03-31
14
задан brian d foy 31 March 2012 в 17:56
поделиться