如何向上或向下舍入日期?你好,
如果我有一堆格式為 MMDDYYYY hh:mm 的開放時間,並且我想修復凌晨 1 點到凌晨 3:59 之間發生的任何日期,以“四捨五入”到凌晨 4 點。
換句話說,如果我的開放時間是 10/09/2020 凌晨 3:12,我需要將其四捨五入到 10/09/2020 凌晨 4:00。
相反,我有相同格式的關閉時間,我想修復凌晨 1 點到凌晨 3:59 之間發生的任何日期,以“向下舍入”到凌晨 1 點。
換句話說,如果我的關閉時間是 10/09/2020 凌晨 3:12,我需要將其向下舍入為 10/09/2020 凌晨 1:00。
我對所有公式都使用 JMP 中的公式編輯器,因此如果我可以將解決方案粘貼到公式編輯器中,那就太棒了!
我附上了一個樣本表。
感謝您對此提供的任何幫助。
菲奧娜
大規模定制回复:如何向上或向下舍入日期?太感謝了。
這有效!
回复:如何向上或向下舍入日期?最有可能的是有更清潔/更有效的方法來做到這一點,但這些應該有效:
開放時間四捨五入:
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“預製”公式構建的解決方案日期和一天中的時間:

回复:如何向上或向下舍入日期?該腳本說明了該方法:
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 );
實際的公式可能會被壓縮到此表達式中,假設您需要一個具有所需格式列屬性的數值:
:date time - Modulo( :date time, In Hours( 1 ) ) + In Hours( 1 )
請注意,向下舍入到最接近的小時只會刪除表達式末尾添加的一小時。