[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