¿Calcular las fechas y horas en que comienza y termina el horario de verano?

Tengo una pregunta sobre la variable de entorno TZ. Tengo la cadena de configuración de la zona horaria como

CST+6CDT,M3.2.0/02:00:00,M11.1.0/02:00:00.

De la cadena TZ, necesito obtener la cantidad de días para M3.2.0 y M11.1.0 para el año actual. También necesito calcular el inicio y el final del horario de verano en segundos UTC (a partir de las 00:00:00 del 1 de enero de 1970).

Puedo obtener el año actual usando la función de tiempo.

Código en lenguaje C. ¿Alguna idea por favor?

preguntado el 11 de junio de 12 a las 19:06

@dirkgently: No; esta pregunta no tiene ninguna relación con la pregunta del 'obstáculo del año bisiesto'. Eso es preguntar sobre los días entre las fechas del calendario. Esta es una pregunta sobre el funcionamiento interno de la variable de entorno TZ. -

@JonathanLeffler: Ah, está bien. -

1 Respuestas

No es fácil, y hay muy poco código C estándar (y mucho menos código C estándar) para ayudar. Una posible fuente de partes de una solución es la Base de datos de zona horaria de Olson en IANA. Están los datos de la zona horaria en sí, pero también hay un paquete de código que maneja la información de la zona horaria. Esto incluye funciones de biblioteca C estándar sustitutas y también algunos códigos de biblioteca de extensión. El código maneja la variable TZ; por lo tanto, tiene un código que puede ayudarte. Si ese código es fácilmente accesible es otra cuestión. Determinar las transiciones de zona horaria (estándar a horario de verano, o de invierno a horario de verano) también es complicado. Hay un código que hace eso, pero encontrarlo puede ser complicado.

respondido 06 mar '17, 23:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.