[Cascavel-pm] Problemas com um Módulo
Rui Fernandes
ruifernandes em tvtel.pt
Sexta Junho 17 12:30:40 PDT 2005
Viva,
Sou novo nesta lista. Para resumir um pouco a minha apresentação, sou um jovem com quase 40 anos, divorciado, com um filho maravilhoso de 19 anos, e, desde que me lembro, estudo temáticas desde o Oculto ( astrologia, cabala, etc. ) à mecânica celeste ( a minha grande paixão ), usando as tecnologias que vão aparecendo ( lápis, papel e borracha, spectrum, PC, basic, Visual Basic, Perl, etc. ). Herois: Ptolomeu, Einstein, Gauss e Carl Sagan. Mais recentes: Myles Standish, da JPL/NASA. Profissão: programador web ( principalmente ).
E, é neste âmbito, que venho colocar a primeira questão: diz respeito ao módulo DateTime::TimeZone ( que eu não consigo pôr a funcionar ). Seja como fôr, o que preciso é de saber a lógica dos ficheiros pm das cidades. 95 % do ficheiro está descodificado. Mas, no fim, as observâncias e regras, não. Por exemplo para Europe/Lisbon temos:
my $last_observance = bless( {
'format' => 'WE%sT',
'gmtoff' => '0:00',
'local_start_datetime' => bless( {
'formatter' => undef,
'local_rd_days' => 728749,
'local_rd_secs' => 7200,
'offset_modifier' => 0,
'rd_nanosecs' => 0,
'tz' => bless( {
'name' => 'floating',
'offset' => 0
}, 'DateTime::TimeZone::Floating' ),
'utc_rd_days' => 728749,
'utc_rd_secs' => 7200,
'utc_year' => 1997
}, 'DateTime' ),
'offset_from_std' => 0,
'offset_from_utc' => 0,
'until' => [],
'utc_start_datetime' => bless( {
'formatter' => undef,
'local_rd_days' => 728749,
'local_rd_secs' => 3600,
'offset_modifier' => 0,
'rd_nanosecs' => 0,
'tz' => bless( {
'name' => 'floating',
'offset' => 0
}, 'DateTime::TimeZone::Floating' ),
'utc_rd_days' => 728749,
'utc_rd_secs' => 3600,
'utc_year' => 1997
}, 'DateTime' )
}, 'DateTime::TimeZone::OlsonDB::Observance' )
;
sub _last_observance { $last_observance }
my $rules = [
bless( {
'at' => '1:00u',
'from' => '1996',
'in' => 'Oct',
'letter' => '',
'name' => 'EU',
'offset_from_std' => 0,
'on' => 'lastSun',
'save' => '0',
'to' => 'max',
'type' => undef
}, 'DateTime::TimeZone::OlsonDB::Rule' ),
bless( {
'at' => '1:00u',
'from' => '1981',
'in' => 'Mar',
'letter' => 'S',
'name' => 'EU',
'offset_from_std' => 3600,
'on' => 'lastSun',
'save' => '1:00',
'to' => 'max',
'type' => undef
}, 'DateTime::TimeZone::OlsonDB::Rule' )
]
;
As regras são mais ou menos compreensíveis: a hora de verão começa (? não parece haver indicador disso nos parâmetros ) no último Domingo de qualquer ano igual ou superior a 1981.Mas a que horas? Devemos avançar ou recuar que quantidade de tempo? Qual a diferença total em relação ao UTC?
A regra - correcta e em vigor - é a seguinte:
Portugal Continental > UTC+1 desde o último Domingo de Março às 01:00 ao último Domingo de Outubro às 02:00 - Europe/Lisbon
Como deduzir isto da informação acima? É que tudo parece trocado...ou então já estou edmasiado cansado...
Alguma ideia?
Melhores cumprimentos / Kind regards,
Rui Miguel Fernandes
Porto - Portugal
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20050617/c8e6aba0/attachment.html
Mais detalhes sobre a lista de discussão Cascavel-pm