Calcular la duración entre dos fechas de años diferentes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy usando secuencias de comandos JSL para ejecutar uno de mis informes que puede 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 fines de semana
2, 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é la foro "Fórmula (Día (:E -: A))", obtengo un valor de 10, en lugar de algo más grande. La fecha de inicio es 2012 y la fecha de finalización es 2013, entonces, ¿tengo que realizar algún cambio en mi script? Las otras duraciones que caen en el mismo año se calculan correctamente utilizando la misma fórmula... pero las fechas que caen en años diferentes 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 el estándar 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 supone 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).
Pruebe, por ejemplo, esto:
Intentar ( Suma ( 1 < Día de la semana ( Índice ( : A , : mi , 86400 ) ) <= 6 ) - 1 )
A continuación se muestra el resultado de mi prueba y parece funcionar. El "contador" se detiene los fines de semana (sábados y domingos donde vivo). Elimine el -1 si por "duración entre dos fechas" quiere incluir la duración completa 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 laborables excluyendo los fines de semana... datos de muestra: -
| Fecha de inicio prevista | Nueva fecha de finalización de la tarea |
| 3/1/2013 | 3/1/2013 |
| 3/1/2013 | 4/01/2013 |
| 8/01/2013 | 8/01/2013 |
| 8/01/2013 | 8/01/2013 |
| 09/01/2013 | 09/01/2013 |
| 09/01/2013 | 09/01/2013 |
| 09/01/2013 | 11/01/2013 |
| 09/01/2013 | 09/01/2013 |
| 09/01/2013 | 10/01/2013 |
| 09/01/2013 | 09/01/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é su fórmula... funciona para algunas celdas... vea mis datos a continuación... usando su fórmula... las filas 1 y 2 se contradicen...
| Fecha de inicio prevista | Nueva fecha de finalización de la tarea | EM |
| 3/1/2013 | 3/1/2013 | 0 |
| 3/1/2013 | 4/01/2013 | 0 |
| 8/01/2013 | 8/01/2013 | 0 |
| 8/01/2013 | 8/01/2013 | 0 |
| 09/01/2013 | 09/01/2013 | 0 |
| 09/01/2013 | 09/01/2013 | 0 |
| 09/01/2013 | 11/01/2013 | 1 |
| 09/01/2013 | 09/01/2013 | 0 |
| 09/01/2013 | 10/01/2013 | 1 |
| 09/01/2013 | 09/01/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/01/2013 | 4 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 7/01/2013 | 1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 8/01/2013 | 2 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 7/01/2013 | 1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 8/01/2013 | 2 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 7/01/2013 | 1 |
| 7/01/2013 | 8/01/2013 | 1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 4/01/2013 | 4/01/2013 | -1 |
| 7/01/2013 | 7/01/2013 | 0 |
| 7/01/2013 | 09/01/2013 | 2 |
| 10/01/2013 | 10/01/2013 | 0 |
| 7/01/2013 | 7/01/2013 | 0 |
| 7/01/2013 | 7/01/2013 | 0 |
| 7/01/2013 | 7/01/2013 | 0 |
| 7/01/2013 | 8/01/2013 | 1 |
| 8/01/2013 | 09/01/2013 | 1 |
| 7/01/2013 | 7/01/2013 | 0 |
| 7/01/2013 | 7/01/2013 | 0 |
| 7/01/2013 | 8/01/2013 | 1 |
| 7/01/2013 | 7/01/2013 | 0 |
| 7/01/2013 | 7/01/2013 | 0 |
| 7/01/2013 | 8/01/2013 | 1 |
| 8/01/2013 | 8/01/2013 | 0 |
| 8/01/2013 | 8/01/2013 | 0 |
| 8/01/2013 | 09/01/2013 | 1 |
| 09/01/2013 | 16/01/2013 | 5 |
| 16/01/2013 | 22/01/2013 | 4 |
| 8/01/2013 | 8/01/2013 | 0 |
| 8/01/2013 | 8/01/2013 | 0 |
| 09/01/2013 | 09/01/2013 | 0 |
| 09/01/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 |
| 09/01/2013 | 09/01/2013 | 0 |
| 09/01/2013 | 09/01/2013 | 0 |
| 09/01/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 laborables y me funciona si las columnas están en formato de fecha (no cadenas).
Re: Calcular la duración entre dos fechas de diferentes añosEsto es lo mismo que usar la diferencia de fechas... pero también incluye los fines de semana... ¿hay alguna manera de calcular SÓLO los días laborables?
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 laborables?
Re: Calcular la duración entre dos fechas de diferentes añosSi sus columnas de fecha de inicio y finalización tienen formato de fecha continua, numérica; 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 de caracteres, entonces puede analizar el texto como lo hizo PMroz anteriormente 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é tal usar la Información de 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 Duración: día: hora: min.
Re: Calcular la duración entre dos fechas de diferentes años¿Puedes hacerlo más general? Te explicaré mis datos claramente.. Tengo una columna "Fecha de inicio" con formato Fecha (dd/mm/aaaa) y otra columna "Fecha de finalización" con formato dd/mm/aaaa. Quiero restar la fecha de inicio de la fecha de finalización, mis fechas son
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 la 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 obtengo 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. La fórmula de esta columna debe indicar el número de días hábiles entre los dos días:
Intentar ( Suma ( Día de la semana ( Índice ( : A , : mi , 86400 ) ) < 6 ) - 1 )
Pega 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¿Puedes 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 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" ) ;
editar = informar ( "20/02/2013" , "m/d/a" ) ;
fecha c = ( editar - una cita ) / 3600 / 24 ;
Esto resulta en
112