¿Hay alguna forma de averiguar el primer día del mes (día mínimo) y el último día de un mes (día máximo), dado el mes como entrada, usando DateTime
en perl?¿Cómo puedo obtener el primer y último día del mes con DateTime de Perl?
Hasta ahora, he descubierto cómo pasar una primera fecha, la última fecha para darme un rango de días.
Pero lo que quiero hacer ahora es simplemente pasar en un mes como argumento, digamos 201203
y devolver min, maxday.
¿Es posible con DateTime?
Además, deseo cambiar la máscara de formato de fecha de YYYYMMDD a AAAA-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);
}
Resultados esperados:
2012-03-01
2012-03-31
¡El día mínimo es siempre 1! – theglauber