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

Geraldo Netto geraldonetto at gmail.com
Fri Feb 28 06:59:31 PST 2014


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/


More information about the SaoPaulo-pm mailing list