2017-04-18 32 views
0

如何計算,以完成當天倒計時的第二天,在營業時間

用於例如小時時鐘需要剔號:假設日期時間爲27/11/2017 16:30目前,如何計算的剩餘完成天(對於28/11/2017 00:00開始)

假定日期時間是在Posixlt格式的小時數。

+0

看看'difftime'。例如。 ('x'是你的第一個日期,'y'是你的第二個日期)''difftime(y,x,unit =「hours」)''。 – count

+0

非常感謝@count :) –

回答

1

如果您在使用POSIXlt unclass,你會得到爆發的所有組件的結構。下面的代碼給出了小數小時。我不確定你想如何處理部分時間。四捨五入?

T1 = unclass(strptime("27/11/2006 16:30", "%d/%m/%Y %H:%M")) 
24 - (T1$hour + T1$min/60) 
[1] 7.5 
+0

不知道'unclass'完成了這個任務。謝謝你的例子@ g5w –

+0

非常感謝契約@ G5W ..它的工作原理是我想要的。歡呼:) –

0

我真的很喜歡@G5W的答案,這裏是一個另類,雖然令人費解的方式: 步驟: 1)使用stringi 4確保我們在POSIXct格式 2)添加改天無論初始時間爲 3)掰開的時間字段)轉換Hour,Minute,Second字段插入秒 5)減去從next day數字表示我們創建 6)中減去由該時刻的可變時間。

> as.POSIXct(lubridate::dmy_hm('27/11/2017 16:30') + (60 * 60 * 24)) %>% { 
    t <- stringi::stri_datetime_fields(.) %>% select(Hour, Minute, Second) 
    (. - (t$Minute * 60 + (t$Hour * 60 * 60) + t$Second)) - dt 
} 
Time difference of 7.5 hours 
+0

非常感謝@Carl Boneri,歡呼:) –