in reply to Formata Data

Even though my portuguese is bad, I hope you'll understand this :

What's wrong with using the POSIX function strftime() ? If you insist on numeric codes, you could rewrite your function as :

Que é errado com usar o função strftime() de POSIX? Se você insistisse em códigos numéricos, você poderia reescrever sua função como :

use POSIX qw(strftime); my @formats = ( undef, '%Y-%m-%d %H:%M:%S', '%m%d%Y', '%y%m%d', '%d%m%y', '%Y%m%d%H%M%S', '%Y%m%d', '%d/%m/%Y. %H:%M:%S', '%Y%m%d%H%M', '%d/%m/%Y', ); sub TimeStamp { my $f = shift; return strftime($format[$f], localtime); }

but there is no sense in having many predefined formats that you reference by number. Either have constants or use the strftime format strings directly.

perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web

Replies are listed 'Best First'.
Re: Re: Formata Data
by Mago (Parson) on Jul 10, 2003 at 14:36 UTC
    Thanks Corion ...

    I could rewrite my function ?

    use POSIX qw(strftime); sub TimeStamp { my $f = shift; my @formats = (undef, '%Y-%m-%d %H:%M:%S', '%m%d%Y', '%y%m%d', '%d%m%y', '%Y%m%d%H%M%S', '%Y%m%d', '%d/%m/%Y. %H:%M:%S', '%Y%m%d%H%M', '%d/%m/%Y', ); return strftime($format[$f], localtime); }

    Mas se eu utilizar códigos numéricos eu posso alterar todas as datas do meu programa apenas alterando o código na função TimeStamp() ...

    If you using numeric codes, you could change all dates.

    example: Cascate Style Sheet

    The formats are defined in function TimeStamp().

    use POSIX qw(strftime); sub TimeStamp { my $format = shift; if ($format == 1) {return strftime('%Y-%m-%d %H:%M:%S', localtime);} if ($format == 2) {return strftime('%m%d%Y', localtime);} if ($format == 3) {return strftime('%y%m%d', localtime);} if ($format == 4) {return strftime('%d%m%y', localtime);} if ($format == 5) {return strftime('%Y%m%d%H%M%S', localtime);} if ($format == 6) {return strftime('%Y%m%d', localtime);} if ($format == 7) {return strftime('%d/%m/%Y. %H:%M:%S', localtime); +} if ($format == 8) {return strftime('%Y%m%d%H%M', localtime);} if ($format == 9) {return strftime('%d/%m/%Y', localtime);} return strftime(undef, localtime); }