<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1476" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Viva,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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 ).</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV>my $last_observance = bless( {<BR> 'format' => 'WE%sT',<BR>
'gmtoff' => '0:00',<BR> 'local_start_datetime' => bless(
{<BR> 'formatter' => undef,<BR>
'local_rd_days' => 728749,<BR> 'local_rd_secs' =>
7200,<BR> 'offset_modifier' => 0,<BR>
'rd_nanosecs' => 0,<BR> 'tz' => bless(
{<BR> 'name' =>
'floating',<BR> 'offset' =>
0<BR> }, 'DateTime::TimeZone::Floating'
),<BR> 'utc_rd_days' => 728749,<BR>
'utc_rd_secs' => 7200,<BR> 'utc_year' => 1997<BR>
}, 'DateTime' ),<BR> 'offset_from_std' => 0,<BR>
'offset_from_utc' => 0,<BR> 'until' => [],<BR>
'utc_start_datetime' => bless( {<BR> 'formatter' =>
undef,<BR> 'local_rd_days' => 728749,<BR>
'local_rd_secs' => 3600,<BR> 'offset_modifier' =>
0,<BR> 'rd_nanosecs' => 0,<BR> 'tz' =>
bless( {<BR> 'name' =>
'floating',<BR> 'offset' =>
0<BR> }, 'DateTime::TimeZone::Floating'
),<BR> 'utc_rd_days' => 728749,<BR>
'utc_rd_secs' => 3600,<BR> 'utc_year' => 1997<BR>
}, 'DateTime' )<BR>}, 'DateTime::TimeZone::OlsonDB::Observance' )<BR>;<BR>sub
_last_observance { $last_observance }<BR><BR>my $rules = [<BR> bless(
{<BR> 'at' => '1:00u',<BR> 'from' =>
'1996',<BR> 'in' => 'Oct',<BR> 'letter'
=> '',<BR> 'name' => 'EU',<BR>
'offset_from_std' => 0,<BR> 'on' =>
'lastSun',<BR> 'save' => '0',<BR> 'to'
=> 'max',<BR> 'type' => undef<BR> },
'DateTime::TimeZone::OlsonDB::Rule' ),<BR> bless( {<BR>
'at' => '1:00u',<BR> 'from' =>
'1981',<BR> 'in' => 'Mar',<BR> 'letter'
=> 'S',<BR> 'name' => 'EU',<BR>
'offset_from_std' => 3600,<BR> 'on' =>
'lastSun',<BR> 'save' => '1:00',<BR> 'to'
=> 'max',<BR> 'type' => undef<BR> },
'DateTime::TimeZone::OlsonDB::Rule' )<BR>]<BR>;<BR></DIV>
<DIV><FONT face=Arial size=2>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?</FONT></DIV>
<DIV><FONT face=Arial size=2>A regra - correcta e em vigor - é a
seguinte:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV>Portugal Continental > UTC+1 desde o último Domingo de
Março às 01:00 ao último Domingo de Outubro às 02:00
- Europe/Lisbon</DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Como deduzir isto da informação acima? É que tudo
parece trocado...ou então já estou edmasiado cansado...</FONT><BR></DIV>
<DIV><FONT face=Arial size=2>Alguma ideia?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Melhores cumprimentos / Kind regards,</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Rui Miguel Fernandes<BR>Porto -
Portugal</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></BODY></HTML>