¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo convertir segundos a años, meses y días: guía paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 792 Vistas
0
Cargando...

Autor del post: bilbo

Foro de CA: Fórmula

Tengo un número total de segundos de una fórmula entre dos fechas, ¿cómo puedo convertir esto a 'x años, y meses, z días'?

¡Cualquier ayuda/indicación será muy apreciada!

Bill

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Autor del post: SKodidine

Foro de CA: Fórmula

Bilbo del condado, ¿estás calculando la diferencia entre las dos fechas en segundos o proviene de una base de datos? Si tienes las dos fechas, aquí tienes una fórmula para calcular la diferencia en años, meses y días.

http://technicalsupport.businessobjects.com/cs/forums/post/6084.aspx

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Autor del Post: bilbo

Foro de CA: Formula

Gracias por la respuesta.

Tengo fechas de inicio y fin en la base de datos, pero necesito calcular un promedio, así que estoy usando datediff ("s",{table.startdate},{table.enddate}) para cada registro.

Luego puedo sumar el total de segundos en todos los registros y dividirlo por el número de entradas para darme un promedio en segundos. Esta es la cifra que necesito convertir a AA,MM,DD.

He encontrado una fórmula en la base de conocimientos para convertir segundos a hh:mm:ss y la he modificado para intentar hacer lo que quiero. Parece darme una respuesta, pero no estoy seguro de que sea correcta, ¡ya que mis habilidades con las fórmulas de Crystal son muy limitadas! Lo que he hecho se muestra a continuación:

local numbervar RemainingSeconds;local numbervar Yr ;local numbervar Mh;local numbervar Dy;

Yr := truncate({@divL} / 31556926);RemainingSeconds := {@divL} - (Yr *31556926);

Mh := truncate(RemainingSeconds/2629743);Dy := {@divL} - (Yr * 31556926) -(Mh * 2629743);

totext(Yr,"0") + " años " + totext(Mh,"0") +" meses"// + totext(Dy,"00")

En la última sección, los días los he comentado, ya que si los dejo obtengo "1 años 10 meses 850996 días" - ¡Por lo tanto, creo que mi fórmula está mal en algún lugar!

¡De nuevo, toda ayuda y asistencia será bienvenida!

Bill

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Autor del Post: SKodidine

Foro de CA: Fórmula

numbervar y := 31556926; // segundos en un año

numbervar m := 2629743.83; // segundos en un mes

numbervar d := 86400; // segundos en un día

//

numbervar years := truncate(a/y);

numbervar months := if remainder(a,y) < m then 0 else truncate(remainder(a,y)/m);

numbervar days := if months < 1 then remainder(a,y)/d else truncate((remainder(remainder(a,y),m))/d);

//

totext(years,0) & ' Años ' & totext(months,0) & 'Meses ' & totext(days,0) & 'días';

donde A es el promedio calculado en segundos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Autor del post: bilbo

Foro de CA: Formula

¡Eso funciona genial!

¡Muchas gracias!

Bill

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?