Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Transformar un número de días en años, meses y días. (https://www.clubdelphi.com/foros/showthread.php?t=91700)

zeta2 04-04-2017 04:55:02

Transformar un número de días en años, meses y días.
 
Estimados, busqué información en el foro sobre lo que les voy a consultar, pero sólo encontré sobre como restar entre dos fechas obteniendo el resultado en días.

Lo que necesito es pasar una cantidad en número de días a un formato fecha (AA/MM/DD).

por ejemplo 15 días = 00/00/15

65 días = 00/02/04

Quiero transformar un número de días en años, meses y días.

Alguien tiene alguna idea de como puedo resolver este problema?

De ante mano muchas gracias por sus respuestas.

Saludos.

Atte. Marco.

Neftali [Germán.Estévez] 04-04-2017 08:35:57

Estrictamente no se si a lo que estás convirtiendo esos días es una fecha, por lo tanto creo que ninguna de las operaciones/funciones de fecha te va a servir.
Me explico. Creo que 00/00/04 no se puede considerar como una fecha, ya que primero, no existe el mes 00, por ejemplo, y lo que es más importante, creo que una fecha es un conjunto completo de días, meses y años. Porque no es lo mismo 35 días incluyendo el mes 2, que 35 días incluyendo el mes 3, puesto que ambos mese tienen diferentes días y los mismo pasa con los años bisiestos.

Por lo tanto decir que 65 días son 2 meses y 4 días no es correcto, porque depende del mes y del año (no se si me explico).
Creo que la opción simple es realizar el calculo manualmente, que por otro lado no tiene mayor complicación utilizando las funciones de DIV (división entera) y MOD (resto).

Algo así como dividir (DIV) los días entre 365 (para los años), el resto (MOD) dividirlo (DIV) entre 30 (para los meses) y el resto (MOD) serán los días. Siguiendo la lógica de tus ejemplos.

escafandra 04-04-2017 23:51:40

Como dice Neftali no tiene sentido esa conversión pero si lo tiene si partes de una fecha concreta y le añades una cantidad de días dada. No es lo mismo sumar a un año bisiesto que a otro que no lo es, tampoco es lo mismo partir de un mes que tiene 31 días que de otro que tiene 30. Por lo tanto, el problema solo tiene sentido si se parte de una fecha concreta.

Saludos.


La franja horaria es GMT +2. Ahora son las 23:56:29.

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