? Hola amigos.
Estoy desarrollando un programa que utiliza cambios de hora hist�ricos para todo el mundo.
Estoy muy agradecido a Jos� Mejuto por su trabajo con PascalTZ. He seguido las instrucciones para acceder a los cambios de hora y todo parec�a funcionar bien, hasta que me he encontrado con que no funciona con la hora de verano en Espa�a. El programa me devuelve -1 en lugar de -2. Esto me pasa tanto en Linux Mint como en Windows.
�Os pasa a vosotros lo mismo?.
Muchas gracias por vuestra respuesta.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20141218/0bebbae1/attachment.html>
Mailing lists / lazarus-es / 2014-12
Hora de verano en España con PascalTZ
12 messages · 4 people · –
- JJosé Mejuto 4
- JJuan M. Puertas 4
- PPaola Bruccoleri 3
- MMartin Gomez 1
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
El 18/12/2014 a las 12:03, Juan M. Puertas escribi�:
Show quoted text 10 lines
Hola,
Puedes poner la fecha de la que quieres hacer la conversi�n ?
Quiero decir, supongo que quieres hacer un cambio de hora/fecha, puedes poner el cambio a realizar ? Si puedes pegar el trozo de c�digo referente ser�a genial, o un mini programa que pueda usar de test.
Hola Jose, encantado de saludarte.
En realidad sucede con cualquier fecha en la que exista una hora de verano en Espa�a. Sea horario de invierno o de verano, siempre devuelve una hora de diferencia respecto a GMT, cuando en verano deber�a devolver dos horas. Aqu� est� el c�digo que utilizo:
function dameHuso(yy,mm,dd,ho,mi,ss:word;zona:string):single;
// Devuelve el Huso Horario en horas
var
ptz :TPascalTZ;
s: string;
t,nt: TDateTime;
ms:Word;
begin
//Now = Tiempo transcurrido desde 1 Enero 1900
ptz := TPascalTZ.Create();
ptz.ParseDatabaseFromFile('tzdatabase/africa');
ptz.ParseDatabaseFromFile('tzdatabase/antarctica');
ptz.ParseDatabaseFromFile('tzdatabase/asia');
ptz.ParseDatabaseFromFile('tzdatabase/australasia');
ptz.ParseDatabaseFromFile('tzdatabase/etcetera');
ptz.ParseDatabaseFromFile('tzdatabase/europe');
ptz.ParseDatabaseFromFile('tzdatabase/northamerica');
ptz.ParseDatabaseFromFile('tzdatabase/pacificnew');
ptz.ParseDatabaseFromFile('tzdatabase/southamerica');
ms:=0;
t:=EncodeDate(yy,mm,dd) + EnCodeTime(ho,mi,ss,ms);
nt:=ptz.LocalTimeToGMT(t,zona);
ptz.free;
dameHuso:=(nt-t)*24.0;
end;El 18 de diciembre de 2014, 16:44, Jos� Mejuto <joshyfun en gmail.com> escribi�:
Show quoted text 32 lines
El 18/12/2014 a las 17:19, Juan M. Puertas escribi�:
Show quoted text 7 lines
[...]
Show quoted text 9 lines
[...]
Hola,
El ParseDatabaseFromFile s�lo se puede llamar una vez, si no la liamos :)
Crea un fichero llamado, por ejemplo, global.txt con el contenido de todas las zonas que quieras usar, y carga s�lo esa.
Yo creo recordar que lo hice en DOS con:
type africa > global
type antarctica >> global
....
type southamerica >> global
N�tese que el primero es un sigo de mayor que, y los siguientes con dos signos, de modo que el primero crea el archivo y los siguientes a�aden al final. El orden no es importate.
Ya me contar�s.
Hola Jose:
Era eso, la he liado con las bases de datos por ser un principiante con L�zarus.
�Muchas gracias por tu trabajo con PascalTZ y por tu rapid�sima respuesta! :-)
Que tengas unas felices fiestas.
El 18 de diciembre de 2014, 17:57, Jos� Mejuto <joshyfun en gmail.com> escribi�:
Show quoted text 53 lines
El 18/12/2014 a las 16:27, Juan M. Puertas escribi�:
Show quoted text 7 lines
Hola todos..
estoy perdida.. qu� es PascalTZ?
byeeeeeee
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20141218/838e7ce9/attachment.html>
El 18/12/2014 a las 19:36, Paola Bruccoleri escribi�:
Show quoted text 7 lines
Hola,
http://wiki.lazarus.freepascal.org/PascalTZ
PascalTZ aka Pascal Time Zone es una unit que te permite cambiar momentos en el tiempo de uso horario, o bien calcula que fecha y hora ser� dentro de 3 meses, 6 horas y 15 minutos; o bien que hora era hace 7 a�os en Venezuela a las 12:00 hora central europea.
Esto que parece tan simple, en realidad es bastante complejo, ya que siqueremos cambiar la hora actual (ahora mismo) en cualquier parte del mundo es f�cil, cogemos la diferencia de sus zonas horarias y hacemos la operaci�n. Pero hay casos complejos como por ejemplo en Espa�a:
Dadas las 3:10 AM del 26 de octubre de 2014 hora local, a esta hora hay que quitarle 15 minutos. � Qu� hora ser�a ? La respuesta parece obvia, las 2:55, pero no, ser�an las 1:55 AM ya que a las 2:00 se produjo un cambio horario, donde las 2:00 pasaron a ser las 3:00.
Dise�� la unit porque ten�a que convertir logs en horario local a GMT, pero los logs eran de hasta 6 meses de antig�edad y de distintas localizaciones, lo cual implicaba realizar comprobaciones independientes para cada uno y cada vez que met�as una zona horaria nueva hab�a que recompilar. As� le dices s�lo en que uso horario est� cada log y listo.
Muy util!
No ten�a idea que existiera, gracias Jos�.
2014-12-18 19:28 GMT-03:00 Jos� Mejuto <joshyfun en gmail.com>:
Show quoted text 46 lines
Os dejo aqu� c�mo unir toda la base de datos desde el terminal de Linux:
cat africa antarctica asia australasia etcetera europe northamerica pacificnew southamerica > global
Gracias :-)
El 19 de diciembre de 2014, 4:06, Martin Gomez <mmgomez en gmail.com> escribi�:
Show quoted text 67 lines
El 18/12/2014 a las 19:36, Paola Bruccoleri escribi�:…
Hola Jos�...
felicitaciones por el trabajo; entiendo si que no debe ser nada f�cil.. por suerte nunca necesit� hacer nada de eso:) pero por lo menos s� que existe esa unit!
d�nde est� publicada? o ya viene con las nuevas versiones? muchas gracias!
----Original Message---- De: joshyfun en gmail.com Fecha: 18/12/2014 19:28 Para: "Spanish version of Lazarus List"<lazarus-es en lists.lazarus.
freepascal.org>
Show quoted text 19 lines
7
a�os en Venezuela a las 12:00 hora central europea. Esto que parece tan simple, en realidad es bastante complejo, ya que siqueremos cambiar la hora actual (ahora mismo) en cualquier parte
del
mundo es f�cil, cogemos la diferencia de sus zonas horarias y hacemos
la
operaci�n. Pero hay casos complejos como por ejemplo en Espa�a: Dadas las 3:10 AM del 26 de octubre de 2014 hora local, a esta hora
hay
que quitarle 15 minutos. � Qu� hora ser�a ? La respuesta parece
obvia,
las 2:55, pero no, ser�an las 1:55 AM ya que a las 2:00 se produjo un cambio horario, donde las 2:00 pasaron a ser las 3:00. Dise�� la unit porque ten�a que convertir logs en horario local a
GMT,
pero los logs eran de hasta 6 meses de antig�edad y de distintas localizaciones, lo cual implicaba realizar comprobaciones
independientes
para cada uno y cada vez que met�as una zona horaria nueva hab�a que recompilar. As� le dices s�lo en que uso horario est� cada log y
listo.
El 19/12/2014 a las 12:54, Paola Bruccoleri escribi�:
Show quoted text 6 lines
Hola,
La puedes descargar de
El 19/12/2014 a las 12:52, Jos� Mejuto escribi�:
Show quoted text 15 lines
ok, muchas gracias!
byeeee
