【发布时间】:2022-01-17 16:34:40
【问题描述】:
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 件这样的工作,那么我应该需要这么多工作时间(和分钟)。
【问题讨论】:
-
您不能自己插入一个自定义函数,将十进制小时转换为小时+分钟吗?使用这个库的动机是什么?
-
paste0((245.85 %/% 1),":", round((245.85 %% 1)* 60),":00") -
您希望输出为时间格式吗?如果你只是对语法感兴趣,你可以这样做: x
-
对不起,我在编程方面不是很有经验,有人告诉我——人们可能以前解决过这些问题
-
非常感谢,这些 cmets 很有帮助。