Gente, paso un código que me gustaría saber si se puede optimizar... y compartir de paso la idea: es realizar un bucle sobre todos los días del mes en curso... para luego realizar un
query sobre cada día.
Como buen scout, seguramente sobrarán partes, pero bueno funciona así de cutre, el pobre; me gustaría ver otras opciones...
Debajo copio el resultado...
Using perl Syntax Highlighting
use strict;
use Date::Calc qw(Add_Delta_Days);
use Date::Calc qw(Add_Delta_YMD);
use POSIX qw(strftime);
use Time::Local;
use POSIX qw/ strftime /;
use DateTime;
use DateTime::Format::Strptime;
my $Strp = new DateTime::Format::Strptime(pattern=>'%Y-%m-%d');
my $dt_hoy = DateTime->now();
print " La fecha de hoy es $dt_hoy \n" ;
print " \n" ;
my $cadena = $dt_hoy;
my $fecha = substr $cadena, 0, 10;
my @fecha = split '-', $fecha;
my $fecha_nueva2 =$fecha[0]. $fecha[1]. $fecha[2];
print "\n";
$fecha[2] = 01;
my ($oyear, $omonth, $oday) = ( $fecha[0], $fecha[1], $fecha[2]);
#variables para sumar un dia
my ($D_y,$D_m,$D_d) = (0,0,1);
#variables para comparar el mes
my ($year,$month,$day) = ($oyear, $omonth, $oday);
# mientras el mes siga siendo el mismo...
while ($omonth == $month){
($oyear, $omonth, $oday) = ($year,$month,$day);
if ( $month < $fecha[2] ) {
next;
}
print "$year,$month,$day \n";
#agrego un dia a la fecha
($year,$month,$day) = Add_Delta_YMD($oyear,$omonth,$oday, $D_y,$D_m,$D_d);
#cierre de while
}
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Using text Syntax Highlighting
C:\Perl>perl c:\perl\buclefechasreducido.pl
La fecha de hoy es 2009-12-04T15:33:10
2009,12,1
2009,12,2
2009,12,3
2009,12,4
2009,12,5
2009,12,6
2009,12,7
2009,12,8
2009,12,9
2009,12,10
2009,12,11
2009,12,12
2009,12,13
2009,12,14
2009,12,15
2009,12,16
2009,12,17
2009,12,18
2009,12,19
2009,12,20
2009,12,21
2009,12,22
2009,12,23
2009,12,24
2009,12,25
2009,12,26
2009,12,27
2009,12,28
2009,12,29
2009,12,30
2009,12,31
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4