Cálculo de la duración entre dos fechas de diferentes años<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy usando secuencias de comandos JSL para ejecutar uno de mis informes que pueden calcular la duración entre dos fechas. Mi informe tiene una fecha de inicio en la columna 'A' y una fecha de finalización en la columna 'E', quiero calcular lo siguiente:
1. Duración entre esos dos días excluyendo los fines de semana
2, la duración entre esos dos días, la fecha de inicio es el 31/10/2012 y la fecha de finalización es el 20/02/2013, y cuando utilicé el foro "Fórmula (Día (: E -: A))", obtengo un valor de 10, en lugar de algo más grande. La fecha de inicio es en 2012 y la fecha de finalización es en 2013, ¿debo hacer algún cambio en mi secuencia de comandos? Las otras duraciones que caen en el mismo año se calculan correctamente utilizando la misma fórmula... pero las fechas que caen en diferentes años no se calculan con precisión.
¿alguien puede ayudar con las dos preguntas?
Gracias,
Re: Calcular la duración entre dos fechas de diferentes añosSí, funcionó... ¡muchas gracias!
Re: Calcular la duración entre dos fechas de diferentes añosOk, creo que entiendo el problema. Aparentemente, JMP no sigue la norma ISO 8601 (es decir, el primer día de la semana es el lunes), sino la tradición estadounidense de celebrar el domingo como el primer día de la semana. Esto explica perfectamente los resultados anteriores, ya que mi fórmula asume lo primero. Sin embargo, es trivial adaptar la fórmula para tener eso en cuenta (o cualquier otra definición local de día de la semana o qué días se consideran pertenecientes al fin de semana).
Prueba, por ejemplo, esto:
Probar ( Suma ( 1 < Día de la semana ( Índice ( : A , : mi , 86400 ) ) <= 6 ) - 1 )
A continuación se muestra mi salida de prueba y parece funcionar. El "contador" se detiene los fines de semana (sábado-domingo donde vivo). Elimine el -1 si por "duración entre dos fechas" quiere incluir la duración total de las fechas de inicio y finalización. (Aquí A = hoy, E = días futuros)
| A | mi | Día laborable | Días laborables |
| 2013-04-05 | 2013-04-05 | Viernes | 0 |
| 2013-04-05 | 2013-04-06 | sábado | 0 |
| 2013-04-05 | 2013-04-07 | Domingo | 0 |
| 2013-04-05 | 2013-04-08 | Lunes | 1 |
| 2013-04-05 | 2013-04-09 | martes | 2 |
| 2013-04-05 | 2013-04-10 | miércoles | 3 |
| 2013-04-05 | 2013-04-11 | jueves | 4 |
| 2013-04-05 | 2013-04-12 | Viernes | 5 |
| 2013-04-05 | 2013-04-13 | sábado | 5 |
| 2013-04-05 | 2013-04-14 | Domingo | 5 |
| 2013-04-05 | 2013-04-15 | Lunes | 6 |
| 2013-04-05 | 2013-04-16 | martes | 7 |
| 2013-04-05 | 2013-04-17 | miércoles | 8 |
| 2013-04-05 | 2013-04-18 | jueves | 9 |
| 2013-04-05 | 2013-04-19 | Viernes | 10 |
| 2013-04-05 | 2013-04-20 | sábado | 10 |
| 2013-04-05 | 2014-04-21 | Lunes | 271 |
| 2013-04-05 | 2015-04-22 | miércoles | 533 |
Re: Calcular la duración entre dos fechas de diferentes añosLos datos son numéricos continuos, formato de fecha... y quiero calcular el número de días de la semana excluyendo los fines de semana... datos de muestra: -
| fecha de inicio prevista | Fecha de finalización de la nueva tarea |
| 3/1/2013 | 3/1/2013 |
| 3/1/2013 | 4/1/2013 |
| 8/1/2013 | 8/1/2013 |
| 8/1/2013 | 8/1/2013 |
| 9/1/2013 | 9/1/2013 |
| 9/1/2013 | 9/1/2013 |
| 9/1/2013 | 11/01/2013 |
| 9/1/2013 | 9/1/2013 |
| 9/1/2013 | 10/01/2013 |
| 9/1/2013 | 9/1/2013 |
| 10/01/2013 | 11/01/2013 |
| 10/01/2013 | 11/01/2013 |
Re: Calcular la duración entre dos fechas de diferentes añosProbé tu fórmula... está funcionando para algunas celdas... mira mis datos a continuación... usando tu fórmula... las filas 1 y 2 se contradicen...
| fecha de inicio prevista | Fecha de finalización de la nueva tarea | EM |
| 3/1/2013 | 3/1/2013 | 0 |
| 3/1/2013 | 4/1/2013 | 0 |
| 8/1/2013 | 8/1/2013 | 0 |
| 8/1/2013 | 8/1/2013 | 0 |
| 9/1/2013 | 9/1/2013 | 0 |
| 9/1/2013 | 9/1/2013 | 0 |
| 9/1/2013 | 11/01/2013 | 1 |
| 9/1/2013 | 9/1/2013 | 0 |
| 9/1/2013 | 10/01/2013 | 1 |
| 9/1/2013 | 9/1/2013 | 0 |
| 10/01/2013 | 11/01/2013 | 0 |
| 10/01/2013 | 11/01/2013 | 0 |
| 2/1/2013 | 2/1/2013 | 0 |
| 2/1/2013 | 8/1/2013 | 4 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 7/1/2013 | 1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 8/1/2013 | 2 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 7/1/2013 | 1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 8/1/2013 | 2 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 7/1/2013 | 1 |
| 7/1/2013 | 8/1/2013 | 1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 9/1/2013 | 2 |
| 10/01/2013 | 10/01/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 8/1/2013 | 1 |
| 8/1/2013 | 9/1/2013 | 1 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 8/1/2013 | 1 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 8/1/2013 | 1 |
| 8/1/2013 | 8/1/2013 | 0 |
| 8/1/2013 | 8/1/2013 | 0 |
| 8/1/2013 | 9/1/2013 | 1 |
| 9/1/2013 | 16/01/2013 | 5 |
| 16/01/2013 | 22/01/2013 | 4 |
| 8/1/2013 | 8/1/2013 | 0 |
| 8/1/2013 | 8/1/2013 | 0 |
| 9/1/2013 | 9/1/2013 | 0 |
| 9/1/2013 | 10/01/2013 | 1 |
| 10/01/2013 | 10/01/2013 | 0 |
| 15/01/2013 | 15/01/2013 | 0 |
| 15/01/2013 | 16/01/2013 | 1 |
| 15/01/2013 | 16/01/2013 | 1 |
| 18/01/2013 | 19/02/2013 | 22 |
| 19/02/2013 | 19/02/2013 | 0 |
| 15/01/2013 | 15/01/2013 | 0 |
| 15/01/2013 | 16/01/2013 | 1 |
| 16/01/2013 | 18/01/2013 | 1 |
| 15/01/2013 | 15/01/2013 | 0 |
| 15/01/2013 | 16/01/2013 | 1 |
| 16/01/2013 | 18/01/2013 | 1 |
| 9/1/2013 | 9/1/2013 | 0 |
| 9/1/2013 | 9/1/2013 | 0 |
| 9/1/2013 | 10/01/2013 | 1 |
| 10/01/2013 | 10/01/2013 | 0 |
| 10/01/2013 | 10/01/2013 | 0 |
| 10/01/2013 | 10/01/2013 | 0 |
| 10/01/2013 | 10/01/2013 | 0 |
| 10/01/2013 | 10/01/2013 | 0 |
| 10/01/2013 | 11/01/2013 | 0 |
| 10/01/2013 | 10/01/2013 | 0 |
| 16/01/2013 | 29/01/2013 | 9 |
| 16/01/2013 | 29/01/2013 | 9 |
| 29/01/2013 | 01/02/2013 | 2 |
| 11/01/2013 | 11/01/2013 | -1 |
| 11/01/2013 | 11/01/2013 | -1 |
| 11/01/2013 | 11/01/2013 | -1 |
| 11/01/2013 | 14/01/2013 | 1 |
Re: Calcular la duración entre dos fechas de diferentes años¿Alguna vez probaste la fórmula en mi respuesta? Se suponía que debía excluir los días de la semana y funciona para mí si las columnas están en formato de fecha (no cadenas).
Re: Calcular la duración entre dos fechas de diferentes añosEsto se calcula igual que usar la diferencia de fechas... pero también incluye los fines de semana... ¿hay alguna forma de calcular SÓLO los días de semana?
Re: Calcular la duración entre dos fechas de diferentes añosEsto está funcionando, pero no quiero incluir los fines de semana en mi cálculo... ¿Hay alguna forma de calcular solo los días de semana?
Re: Calcular la duración entre dos fechas de diferentes añosSi sus columnas de fecha de inicio y finalización tienen formato Continuo, Numérico, Fecha; entonces la fórmula para la duración entre las dos columnas en días podría ser algo como: Diferencia de fecha (: fecha de inicio,: fecha de finalización, "día")
Si sus columnas de fecha son caracteres, entonces puede analizar el texto como lo hizo PMroz arriba con:
Diferencia de fecha (
informat(:Fecha de inicio, "m/d/y"),
informat(:Fecha de finalización, "m/d/y"),
"día")
Re: Calcular la duración entre dos fechas de diferentes añosEsto le dará el tiempo transcurrido en días.
Primero, agregue una nueva variable/columna numérica.
En la ventana del Editor de fórmulas, seleccione la primera fecha, haga clic en restar, seleccione la segunda fecha, luego divida por, seleccione la función Fecha y hora, en días, coloque un 1 entre paréntesis, haga clic en Aplicar.
(:diagnosis_date - :dob_date) / En Días( 1 )
Re: Calcular la duración entre dos fechas de diferentes años¿Qué le parece usar la Información de la columna y especificar las columnas Fecha de inicio y Fecha de finalización con Tipo de datos = Numérico, Tipo de modelado = Continuo, Formato = Fecha = m/d/y, Formato de entrada = Fecha = m/d/y? Luego, agregue una columna adicional y, utilizando la Fórmula de columna, especifique Fecha de finalización-Fecha de inicio y también elija Formato de duración: día: hora: minuto.
Re: Calcular la duración entre dos fechas de diferentes años¿Puedes hacerlo más general? Voy a explicar mis datos claramente.. Tengo una columna "Fecha de inicio" con el formato Fecha (dd/mm/aaaa) y otra columna "Fecha de finalización" con el formato dd/mm/aaaa. Quiero restar la fecha de inicio de la Fecha de finalización, mi fecha es
Fecha de inicio Fecha de término
31/10/2012 31/03/2013
15/09/2012 13/02/2013
15/08/2012 29/01/2013
Ahora quiero restar Fecha de finalización - Fecha de inicio para obtener el valor en días
dado que la fecha de inicio es en 2012 y las fechas de finalización son en 2013, no estoy obteniendo el valor correcto si simplemente digo: Fecha de finalización -: Fecha de inicio
Re: Calcular la duración entre dos fechas de diferentes años1. Esta fórmula de columna debe dar el número de días hábiles entre los dos días:
Probar ( Suma ( Día de la semana ( Índice ( : A , : mi , 86400 ) ) < 6 ) - 1 )
Pegue esto en el editor de fórmulas. Try() solo es necesario si tiene celdas vacías en la columna de fecha. El -1 está ahí para excluir la fecha de inicio (o finalización) de la suma. 86400 es el número de segundos en 24 horas.
2. La fórmula de columna equivalente a la sugerencia de PMroz sería:
( : mi - : A ) / 86400
Re: Calcular la duración entre dos fechas de diferentes años¿Puede proporcionar más información?¿Cuál es el tipo de datos y el formato de las columnas A y E?Además, cuando restas las fechas, obtienes la cantidad de segundos entre ellas.Aquí hay un ejemplo simple que calcula la diferencia de fechas en días:
una cita = informar ( "31/10/2012" , "m/d/a" ) ;
fecha de caducidad = informar ( "20/02/2013" , "m/d/a" ) ;
cfecha = ( fecha de caducidad - una cita ) / 3600 / 24 ;
Esto resulta en
112