我想用Java创建一个数组,它接收一个人的进入和超时时间并计算总小时数。是否可以使用数组执行此操作?并且,如果是这样,我如何将字符串(在这种情况下为time-in和time-out)提升为要计算的双精度数?
答案 0 :(得分:0)
假设你的字符串是这样的 1.0,4.0 你可以使用string.split(“,”)和Double.parseDouble从你的字符串中获取单个双打并使用它们。是的,然后你可以将它们添加到一个新的数组中,但不是,你不能将现有数组的类型从String更改为double - 不需要这样做。
答案 1 :(得分:0)
您似乎想要计算给定日期之间的持续时间。我建议使用Java的Duration类。
但首先,您需要将字符串转换为日期对象,以便可以使用持续时间进行计算。
示例:
String[] dates = new String[] {
"2018-06-05 09:00:00",
"2018-06-05 18:00:00"
};
var formatter = DateTimeFormat.ofPattern("yyyy-MM- HH:mm:ss");
var convertedTime = Arrays.stream(dates)
.map(dateString -> LocalDateTime.parse(dateString, formatter))
.collect(Collectors.toList());
var start = convertedTime.get(0);
var end = convertedTime.get(1);
var duration = Duration.between(start, end);
System.out.println(duration.toHours() + " hours has passed.");