Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como puedo evitar el horario de verano (https://www.clubdelphi.com/foros/showthread.php?t=75754)

Parsec 16-09-2011 15:55:40

Como puedo evitar el horario de verano
 
Hola de nuevo,

el título puede parecer algo surrealista, pero se trata de los siguiente:

1º Me guardo la fecha y hora actual.
Cita:

Present:=Now;
DecodeDate(Present, ano, mes, dia);
DecodeTime(Present, hora, Min, Seg, Mils);
2º Cambio la fecha y hora del sistema
3º Vuelvo a poner la fecha y hora del sistema según los variables del 1er. punto.
Cita:

fecha.wyear:=ano;
fecha.wMonth:=mes;
fecha.wDay:=dia;
fecha.wHour:=hora;
Fecha.wMinute:=min;
Fecha.wSecond:=seg;
Fecha.wMilliseconds:=mils;
SetSystemTime(Fecha);
Y resulta que siempre me pone 2 horas más, creo que es debido al horario de verano. ¿como se puede solucionar?
Saludos

ecfisa 16-09-2011 15:58:51

Hola Parsec.

El horario de verano depende de la configuración de la zona horaria de windows, por lo que si querés que no lo cambie, busca una zona horaria que no use el horario de verano.

Saludos.

Edito: Creo que en alguna versión de Windows permite seleccionar o nó el uso del horario de verano.

Parsec 16-09-2011 16:08:40

Pero la configuración del horario de verano la quiero conservar porque me cambia de hora automáticamente.
¿No hay ninguna variable donde yo pueda leer cuantas horas hay de diferencia?
Es que no puedo poner un valor fijo a descontar de 2 h. (es lo que me suma ahora), porque a partir del mes de octubre (cuando cambie el horario) será de 1 h.
Saludos

NOTA: ¿Porqué aparece mi mensaje como movido?

ecfisa 16-09-2011 16:14:49

Hola Parsec.

Cita:

¿No hay ninguna variable donde yo pueda leer cuantas horas hay de diferencia?
Al menos yo, no conozco. (lo que no quiere decir que no exista...)

Cita:

NOTA: ¿Porqué aparece mi mensaje como movido?
Por que el tema que trata tu mensaje no es sobre Object Oriented Programming.

Saludos. :)

Parsec 16-09-2011 16:16:57

Ok, ya he visto que estoy 'varios'.

Y entonces.....
¿No hay ninguna variable donde yo pueda leer cuantas horas hay de diferencia?
Es que no puedo poner un valor fijo a descontar de 2 h. (es lo que me suma ahora), porque a partir del mes de octubre (cuando cambie el horario) será de 1 h.

Saludos

ecfisa 16-09-2011 16:19:44

Hola Parsec.

Como te dije antes, yo no conozco, pero puede ser que exista o haya manera de obtener la diferencia. Voy a investigar si encuentro algo te comunico.

De todos modos si hay alguna posibilidad, alguno de los compañeros la sabrá sin lugar a dudas. ;)

Un saludo.

Parsec 16-09-2011 16:41:13

No hace falta ecFisa, está resuelto, no me gusta hacerlo así pero funciona:
Cita:

Present:= Now;
DecodeTime(Present, hora2, Min, Seg, Mils);
If hora2<>hora then // hora es el valor real y hora2 con las horas sumadas por el horario de verano.
begin
diferencia:=hora2-hora;
hora:=hora-diferencia;
fecha.wHour:=hora;
end;
SetSystemTime(Fecha);
Muchas gracias por todo y hasta la próxima.

Saludos

ecfisa 16-09-2011 16:41:35

Hola de nuevo.

Revisá este artículo: Cómo configurar el horario de verano para los sistemas operativos Microsoft Windows, que aclara el funcionamiento del cambio de horario para los diferentes países.

Un saludo.

ecfisa 16-09-2011 16:44:14

Hola.

Creo que pusimos el mensaje casi al mismo tiempo... :)

Me alegro mucho que lo hayas resuelto y gracias por acercarnos tu solución. ;)

Un saludo.


La franja horaria es GMT +2. Ahora son las 21:40:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi