如何向上或向下取整日期?你好,
如果我有一堆格式為MMDDYYYY hh:mm的開放時間,並且我想解決這些在凌晨1點到凌晨3:59之間發生的日期,將其“舍入”到凌晨4點。
換句話說,如果我的開放時間是10/09/2020 3:12 AM,我需要將其舍入到10/09/2020 4:00 AM。
相反,我的Closetimes具有相同的格式,我想將在凌晨1點至凌晨3:59之間的任何這些日期都固定為“向下舍入”至凌晨1點。
換句話說,如果我的關閉時間是10/09/2020 3:12 AM,我需要將其四捨五入到10/09/2020 1:00 AM。
我對所有公式都使用JMP中的公式編輯器,因此,如果可以將解決方案粘貼到公式編輯器中,那就太好了!
我已附上樣品表。
感謝您對此的任何幫助。
菲奧娜
數據表回复:如何向上或向下取整日期?該腳本說明了該方法:
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 );
假設您想要一個具有所需Format列屬性的數值,則實際公式可能會壓縮到該表達式中:
Modulo( date time, In Hours( 1 ) ) + In Hours( 1 )
請注意,四捨五入到最接近的小時數只會刪除表達式末尾增加的一小時。
回复:如何向上或向下取整日期?最有可能採用更清潔/更有效的方法來執行此操作,但這些方法應該可以起作用:
四捨五入的開放時間:
If(In Hours(1) <= Time Of Day(:Opentime) < In Hours(4),
(:Opentime - Time Of Day(:Opentime)) + In Hours(4),
:Opentime
)
四捨五入時間也一樣:
If(In Hours(1) <= Time Of Day(:Closetime) < In Hours(4),
(:Closetime - Time Of Day(:Closetime)) + In Hours(1),
:Closetime
)
當您在日期列上的列名稱上單擊鼠標右鍵時,將基於JMP的“預製”公式構建解決方案日期和一天中的時間:

回复:如何向上或向下取整日期?非常感謝。
這有效!!