[Cascavel-pm] Probleminha com datas...
Flavio S. Glock
fglock em gmail.com
Quarta Maio 30 09:34:30 PDT 2007
Luis:
Opa, finalmente vou poder responder uma pergunta usando ICal:
-----
use strict;
use warnings;
use DateTime;
use DateTime::Event::ICal;
my $basedate = DateTime->now( time_zone=>'Europe/Amsterdam' )
->truncate( to => 'day' );
my $interval = 3;
my $days = DateTime::Event::ICal->recur(
dtstart => $basedate,
freq => 'daily',
count => $interval,
);
print "@{[ $days->as_list ]}\n";
----
- Flavio S. Glock
Em 30/05/07, Luis Motta Campos<luismottacampos em yahoo.co.uk> escreveu:
> Gente, eu estou procurando idéias para resolver um problema
> complicado.
>
> Meus dados de entrada são uma data válida, que eu vou chamar
> $basedate, e um intervalo de tempo positivo, inteiro, não nulo, que
> eu vou chamar $interval.
>
> O que eu preciso fazer é obter todos os dias entre $basedate e
> $basedate+$interval. Alguém tem alguma sugestão melhor do que um loop
> para calcular um dia de cada vez?
>
> O loop:
>
> #!/home/Users/lcampos/run/bin/perl
> use strict;
> use warnings;
> use DateTime;
>
> my $basedate = DateTime->now( time_zone=>'Europe/Amsterdam' )-
> >truncate( to => 'day' );
> my $interval = 3;
>
> sub list_days {
> my ( $start_date, $interval ) = @_;
> my $end_date = $start_date + DateTime::Duration->new( days =>
> $interval );
> my $pointer = $start_date->clone;
> my @days;
> while( $pointer < $end_date ) {
> push @days, $pointer->clone;
> $pointer->add( days => 1 );
> }
> return \@days;
> }
>
> my @days = list_days( $basedate, $interval );
> __END__
>
> Alguém tem uma idéia melhor?
> Putamplexos!
> --
> Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
> Perl fanatic evangelist, and amateur {cook, photographer}
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
Mais detalhes sobre a lista de discussão Cascavel-pm