[SP-pm] Perl e horário de verão

Tiago Peczenyj tiago.peczenyj at gmail.com
Sat Mar 1 11:35:56 PST 2014


Pra mim ta certo
Em 01/03/2014 16:33, "Stanislaw Pusep" <creaktive at gmail.com> escreveu:

> Esta data é "apenas" o início do horário de verão! Não existe meia-noite
> do dia 19 de Outubro de 2014 no Brasil, o relógio muda de 23:59:59 direto
> para 01:00:00. O comportamento do DateTime é polêmico nesse caso pois a
> documentação sugere que "Date" e "Time" serão tratados como duas partes
> relativamente independentes. Só que não é assim que funciona: se você
> omitir a parte do "Time", 00:00:00 será usado por default, o que tem
> implicações esquisitas. Infelizmente, meia-noite não é a única excessão, em
> alguns períodos/timezones a hora "pula" de 1am para 2am ou mesmo 2am para
> 3am. Empiricamente, assume-se que meio-dia é uma hora default segura para
> inicializar o objeto DateTime. E a documentação, fala disso? Não!
> Olha, DateTime é espetacular de tão útil, mas precisa conhecer bem para
> não dar o tiro no próprio pé. Ou, sei lá, para o tiro só pegar de raspão.
>
>
> 2014-03-01 20:04 GMT+01:00 Tiago Peczenyj <tiago.peczenyj at gmail.com>:
>
>> vai ver que essa data, a 00:00:00, tem alguma peculiaridade.
>>
>> será? Eu estou do lado do DateTime. E vc?
>>
>>
>> 2014-03-01 15:35 GMT-03:00 Stanislaw Pusep <creaktive at gmail.com>:
>>
>> ORLY???
>>>
>>> $ perl -MDateTime -le 'DateTime->new(year => 2014, month => 10, day =>
>>> 19, time_zone => "America/Sao_Paulo"); print "OK"'
>>> Invalid local time for date in time zone: America/Sao_Paulo
>>>
>>> Where's your God now?
>>>
>>>
>>> 2014-03-01 18:52 GMT+01:00 Tiago Peczenyj <tiago.peczenyj at gmail.com>:
>>>
>>> Use DateTime. É bom
>>>> Em 01/03/2014 14:04, "Geraldo Netto" <geraldonetto at gmail.com> escreveu:
>>>>
>>>> Opa!
>>>>>
>>>>> Ehehehhe!!!
>>>>>
>>>>> Devo admitir aqui que a maior parte do desenvolvimento que eu faço é
>>>>> feito em java
>>>>> Além disso, a última vez que eu tinha feito alguma coisa em perl foi
>>>>> em 2006 quando o Fernando Correa da RIO-PM trabalhava em SP
>>>>> e tinha me ajudado a fazer um front-end em perl-tk p/ aumentar e
>>>>> diminuir o volume do audio no linux
>>>>>
>>>>> BTW, foi lá que eu também conheci o Blabos e depois, em alguns
>>>>> encontros sociais, o Solli :P
>>>>>
>>>>>
>>>>> See Ya!!!
>>>>>
>>>>> Geraldo Netto
>>>>> Sapere Aude => Non dvcor, dvco
>>>>> São Paulo, Brasil, -3gmt
>>>>> site: http://exdev.sf.net/
>>>>>
>>>>> 2014-03-01 12:18 GMT-03:00 Daniel Vinciguerra <
>>>>> dan.vinciguerra at gmail.com>:
>>>>> > herman++
>>>>> >
>>>>> > Caiu em desuso após o PBP "definir" como um bom padrão nomes de sub
>>>>> todo
>>>>> > maiúsculo ou todo minusculo... mas o perlcritic só pega no nível de
>>>>> > severidade --brutal
>>>>> >
>>>>> > (eu particularmente uso e gosto porque, IMHO, deixa muito mais fácil
>>>>> a
>>>>> > leitura)
>>>>> >
>>>>> > []'s
>>>>> >
>>>>> >
>>>>> >
>>>>> > Daniel Vinciguerra
>>>>> > Web Solutions Architect and Co-Owner at Bivee
>>>>> > http://github.com/dvinciguerra
>>>>> >
>>>>> >
>>>>> > 2014-02-28 21:28 GMT-03:00 Hernan Lopes <hernanlopes at gmail.com>:
>>>>> >
>>>>> >> nossa, um camel case!
>>>>> >> CamelCase anda tão fora de moda que me deixa surpreso ao ver que
>>>>> pessoas
>>>>> >> ainda o preferem ao invés de under_line
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> 2014-02-28 11:59 GMT-03:00 Geraldo Netto <geraldonetto at gmail.com>:
>>>>> >>
>>>>> >>> Bom Dia Pessoal!
>>>>> >>>
>>>>> >>> Consegui evoluir no código com a api do posix mesmo
>>>>> >>> crio as datas com POSIX::strftime
>>>>> >>> e calculo o horário de verão pegando a saida do comando cal no
>>>>> shell
>>>>> >>>
>>>>> >>> yep, eu sei que é feito, mas resolve o meu problema de um jeito
>>>>> rápido...
>>>>> >>> por hora, a idéia é só gerar o "okay" da gerencia p/ matar umas 4
>>>>> >>> versões shell que fazem o mesmo trabalho, mas precisam de alguns
>>>>> >>> parâmetros diferentes e alguma intervenção humana especificamente
>>>>> no
>>>>> >>> período de horário de verão
>>>>> >>>
>>>>> >>> a minha dúvida é primária, suponho...
>>>>> >>> mas eu não entendi o porque usar o shift
>>>>> >>> se eu posso verificar com o defined() se o @_[<número>] está
>>>>> definido?
>>>>> >>>
>>>>> >>> Aceito sugestões e Mais uma vez, Valeu mesmo pela força! :P
>>>>> >>>
>>>>> >>>
>>>>> >>> BTW, código todo a seguir:
>>>>> >>>
>>>>> >>> #!/usr/bin/perl
>>>>> >>>
>>>>> >>> use strict;
>>>>> >>> use warnings;
>>>>> >>>
>>>>> >>> use POSIX;
>>>>> >>>
>>>>> >>>
>>>>> >>> # a inicia a data em 1900 entao, se for passado 95 => 1995
>>>>> >>> sub calcularDeslocamentoAno {
>>>>> >>>     die "ano invalido" unless defined(@_[0]) && return ($_[0] > 99
>>>>> ?
>>>>> >>> $_[0] - 1900 : $_[0]);
>>>>> >>> }
>>>>> >>>
>>>>> >>> sub criarData {
>>>>> >>>     die "parametros invalidos" unless (defined(@_[0]) &&
>>>>> >>> defined(@_[1]) && defined(@_[2]));
>>>>> >>>     #Usage: POSIX::strftime(fmt,             sec, min, hour, mday,
>>>>> >>> mon, year, wday = -1, yday = -1, isdst = -1)
>>>>> >>>     return POSIX::strftime("%Y,%m,%d", 0, 0, 0, @_[0], (@_[1] -1),
>>>>> >>> &calcularDeslocamentoAno(@_[2]), 0, 0);
>>>>> >>> }
>>>>> >>>
>>>>> >>> sub calcularDiaInicioHorarioVerao {
>>>>> >>>     my $dia_inicio = `cal 10 2013 | tail -4 | head -1 | cut -d' '
>>>>> -f7`;
>>>>> >>> }
>>>>> >>>
>>>>> >>> sub calcularDiaFimHorarioVerao {
>>>>> >>>     my $dia_fim = `cal 2 2014 | tail -4 | head -1 | cut -d' ' -f7`;
>>>>> >>> }
>>>>> >>>
>>>>> >>> sub  trim {
>>>>> >>>     my $s = shift;
>>>>> >>>     $s =~ s/^\s+|\s+$//g;
>>>>> >>>     return $s;
>>>>> >>> }
>>>>> >>>
>>>>> >>> print &criarData(2, 5, 2014);
>>>>> >>> print &trim($dia_inicio);
>>>>> >>> print &trim($dia_fim);
>>>>> >>>
>>>>> >>> Geraldo Netto
>>>>> >>> Sapere Aude => Non dvcor, dvco
>>>>> >>> São Paulo, Brasil, -3gmt
>>>>> >>> site: http://exdev.sf.net/
>>>>> >>>
>>>>> >>> 2014-02-26 23:41 GMT-03:00 Geraldo Netto <geraldonetto at gmail.com>:
>>>>> >>> > Opa!
>>>>> >>> >
>>>>> >>> > Tudo okay Pessoal?
>>>>> >>> >
>>>>> >>> > Eu sou o Geraldo, um ghost reader da SPPM (e algumas outras PMs)
>>>>> >>> > e eu ando trabalhando vagarosamente num projetinho
>>>>> >>> > que eu dependo de verificação do horário de verão
>>>>> >>> >
>>>>> >>> > A idéia é separar o ano em 3 partes:
>>>>> >>> >
>>>>> >>> > fim do horário de verão (terceiro domingo de fevereiro)
>>>>> >>> > fora do horário de verão
>>>>> >>> > início do horário de verão (terceiro sábado de fevereiro)
>>>>> >>> >
>>>>> >>> > E baseado nisso, lançar um shell que vai receber o timezone,
>>>>> data de
>>>>> >>> > início e de fim
>>>>> >>> > p/ fazer a coleta de dados pelo hp openview (comando ovpmbatch)
>>>>> >>> >
>>>>> >>> > Só que...
>>>>> >>> > -eu tenho um servidor tru64 (sem suporte)
>>>>> >>> > -rodando perl 5.8 (2002 pelo o que o version diz...)
>>>>> >>> > -sem sudo/root/possibilidade de instalação de pacotes de
>>>>> terceiros
>>>>> >>> > -<inclua-aqui-todas-as-limitações-que-vocês-imaginarem-de-infra>
>>>>> >>> > -meu "core business" é análise de desempenho de software,
>>>>> >>> > então o código não pode ser muito "perlish"
>>>>> >>> > porque alguém pode precisar dar manutenção depois de mim
>>>>> >>> >
>>>>> >>> > Embora eu ainda não tenha código real (só comecei a brincar)
>>>>> >>> > Eu estou pensando em ir com a api do posix, especificamente a
>>>>> >>> > função/método strftime
>>>>> >>> >
>>>>> >>> > Eventualmente vocês teriam alguma sugestão?
>>>>> >>> >
>>>>> >>> >
>>>>> >>> > Grande Abraço!
>>>>> >>> >
>>>>> >>> > Geraldo Netto
>>>>> >>> > Sapere Aude => Non dvcor, dvco
>>>>> >>> > São Paulo, Brasil, -3gmt
>>>>> >>> > site: http://exdev.sf.net/
>>>>> >>> =begin disclaimer
>>>>> >>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>> >>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>> >>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> >>> =end disclaimer
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> =begin disclaimer
>>>>> >>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>> >>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>> >>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> >> =end disclaimer
>>>>> >>
>>>>> >
>>>>> >
>>>>> > =begin disclaimer
>>>>> >    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>> >  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> > =end disclaimer
>>>>> >
>>>>> =begin disclaimer
>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> =end disclaimer
>>>>>
>>>>
>>>> =begin disclaimer
>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>> =end disclaimer
>>>>
>>>>
>>>
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>>
>>
>>
>> --
>> Tiago B. Peczenyj
>> Linux User #405772
>>
>> http://about.me/peczenyj
>>
>> =begin disclaimer
>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140301/8e71bed2/attachment.html>


More information about the SaoPaulo-pm mailing list