[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