我使用spring4 webapp,需要存储和计算时间(小时和分钟)的逻辑,但它不是一个间隔,因为数量是由用户插入或由第三方应用程序与HH检索:MM格式。
到目前为止,我已经完成了Float值,我想要更改,因为在float中,分钟数是100个基数,而不是60个基数,因为它是正确的。 我已经尝试了java.time.LocalTime但它不起作用,因为它超过24小时是不可接受的。
我认为可能有一种更清洁的方式来处理它。
提前致谢
----- EDIT
此webapp计算加班工作。用户输入员工按合同时间计算的小时数。
此时它被映射为一个浮点字段,其转换计算如下:
float hours = //Conversion of the HH:MM string input to HH.MM float within the framework
valueToPay = hours * employee.getHourSalary();
这种方式不对,因为没有正确计算分钟数。我可以将整个时间转换为分钟数,但我正在寻找一种更清洁的方式,因为java.time API提供了很多。
答案 0 :(得分:1)
LocalTime
适用于当天的时间。
如果你需要一个教育,你有java.time.Duration
。例如,持续时间为30小时(不适合LocalTime):
Duration thirtyHours = Duration.ofHours(30);
答案 1 :(得分:0)
使用org.joda.time.Duration
来自javadoc的:
指定时间长度的不可变持续时间(以毫秒为单位)。
持续时间由固定的毫秒数定义。没有字段的概念,例如天或秒,因为这些字段的长度可以变化。可以将持续时间转换为Period以获得字段值。然而,这种转换通常会导致精度损失。
持续时间是线程安全且不可变的。