¿Cómo redondeo hacia arriba o hacia abajo las fechas?Hola,
Si tengo un montón de Opentimes en el formato MMDDYYYY hh:mm y me gustaría arreglar cualquiera de estas fechas que ocurren entre la 1 am y las 3:59 am para "redondear" a las 4 am.
En otras palabras, si mi tiempo de apertura es el 09/10/2020 a las 3:12 a. m., necesito que se redondee al 09/10/2020 a las 4:00 a. m.
Por el contrario, tengo Closetimes en el mismo formato y me gustaría corregir cualquiera de estas fechas que ocurren entre la 1 a. m. y las 3:59 a. m. para "redondear hacia abajo" a la 1 a. m.
En otras palabras, si mi horario de cierre es el 09/10/2020 a las 3:12 a. m., necesito que se redondee a la baja hasta el 09/10/2020 a la 1:00 a. m.
Uso el editor de fórmulas en JMP para todas mis fórmulas, así que si puedo pegar la solución en el editor de fórmulas, ¡sería genial!
Adjunto una tabla de muestra.
Gracias por cualquier ayuda con esto.
fiona
Tabla de datosRe: ¿Cómo redondeo hacia arriba o hacia abajo las fechas?Muchas gracias.
¡¡Esto funciona!!
Re: ¿Cómo redondeo hacia arriba o hacia abajo las fechas?Lo más probable es que haya una forma más limpia/más eficiente de hacer esto, pero estas deberían funcionar:
Tiempo abierto redondeado:
If(In Hours(1) <= Time Of Day(:Opentime) < In Hours(4),
(:Opentime - Time Of Day(:Opentime)) + In Hours(4),
:Opentime
)
La misma idea para el tiempo de cierre redondeado:
If(In Hours(1) <= Time Of Day(:Closetime) < In Hours(4),
(:Closetime - Time Of Day(:Closetime)) + In Hours(1),
:Closetime
)
Solución basada en las fórmulas "prefabricadas" por JMP cuando hace clic con el botón derecho en el nombre de la columna en la columna de fecha para Fecha y Hora del día :

Re: ¿Cómo redondeo hacia arriba o hacia abajo las fechas?Este script ilustra el enfoque:
Names Default to Here( 1 );
date time = 09Oct2020:03:12;
rounded date time = date time - Modulo( date time, In Hours( 1 ) ) + In Hours( 1 );
formatted rounded date time = Format( rounded date time, "m/d/y h:m" );
Show( date time, formatted rounded date time );
La fórmula real podría comprimirse en esta expresión, suponiendo que desea un valor numérico con el atributo de columna Formato deseado:
:date time - Modulo( :date time, In Hours( 1 ) ) + In Hours( 1 )
Tenga en cuenta que redondear a la hora más cercana simplemente eliminaría la adición de una hora al final de la expresión.