[C con Clase] class fecha

Salvador Pozo salvador en conclase.net
Jue Feb 24 12:11:25 CET 2011


Hola:

Como dice David, eso ya está hecho. :)

Pero si nos vamos a limitar a hacer sólo lo que nadie ha hecho antes, creo que sólo nos van a quedar por hacer las tareas imposibles o las que nadie quiere hacer.

¡Es broma!

Está bien indicar que hay soluciones hechas a problemas cotidianos, como este, pero también hay que responder a las preguntas que nos hacen. Esas soluciones hechas existen, y es posible que el que pregunta lo sepa, pero a lo mejor, lo que le interesa saber cómo lo hacen.

Una posible solución es usar funciones ANSI para manipular fechas. Como mktime, y time. Esto evita tener que bregar con problemas de calendarios perpetuos, reglas para saber si un mes de febrero cualquiera tiene 28 ó 29 días, etc.

Otra es reinventar la rueda, y partir de cero. Para ello necesitas una tabla con los días de cada mes, y una función que corrija el del mes de febrero dependiendo del año. A medida que sumas días a tu estructura, dependiendo del mes y del año, aumentas el mes. Cuando llegues a 13, vuelves a enero y aumentas el año, etc.

Una solución para optimizar es guardar en la misma estructura de días de cada mes, los días del año, de modo que puedas avanzar años completos, si es posible.

Si se trata de un problema menor dentro de un programa más complejo, te aconsejo que sigas el consejo de David, y busques una clase que lo haga todo por ti.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase