数小时倒数第二天

时间:2017-04-18 12:41:20

标签: r

如何计算时钟需要打勾以完成一天的小时数

例如:假设Datetime目前是27/11/2017 16:30,如何计算完成当天剩余的小时数(28/11/2017 00:00开始)

假设Datetime是Posixlt格式。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我真的很喜欢@ G5W的答案;这是一种替代方案,尽管是错综复杂的方式: 脚步: 1)确保我们采用POSIXct格式 2)在初始时间内添加另一天 3)使用stringi拆分时间字段 4)将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