lubridate - 从小数点获取小时和分钟

lubridate - get hours and minutes from decimal hours

我有 245.85 格式的小数小时等于 [hh]:mm:ss 格式的 245:51:00

我想将十进制小时数转换为 hh:mm 格式,但我该怎么做?

呈现 245.85 的原始计算是:

library(lubridate)
time_length(hm("7 27")*33,unit = "hours")

我想要的是245:51或者245:51:00
如果我使用 as.period 我也会得到几天 - 比如:

as.period(dhours(time_length(hm("7 27")*33,"hours")))
[1] "10d 5H 51M 0S"

和背景 - 我的目标是将小时和分钟(例如 7:27)乘以任意整数(例如 33)并以 hh:mm 格式返回结果 - 避免天数(如as.period 上面的例子)。假设一件工作需要 7 小时 27 分钟,我们每年给我 33 件这样的工作,我应该需要这么多的工作时间(和分钟)才能完成。

如果真的只有H:M:S格式给你带来麻烦,试试

library(hms)
hms(hours=245.85)

产生245:51:00