gpt4 book ai didi

java - HHMM 格式的总计时间

转载 作者:行者123 更新时间:2023-12-01 10:56:46 24 4
gpt4 key购买 nike

所以我有一系列的时间:

ArrayList<String> times = new ArrayList<String>();
times.add("1240");
times.add("1028");
times.add("0923");
times.add("2023");

我不想找到这些时间之间经过的总小时数,但我不知道如何找到!

例如:

"1240 to 1028" would be 11hrs20 + 10hrs28 in travel time.

To go from 12h40 on one day to 10h28 next day, you need 11h20 (going to midnight), then 10h28. Quite clear.

最佳答案

首先我们需要一种将字符串转换为线性时间表示的方法:

// Given a string of the form HHMM, this returns the number of minutes after midnight.
// For example: timeStringToMinutes("0000") -> 0.
// timeStringToMinutes("0015") -> 15.
// timeStringToMinutes("0100") -> 60.
// timeStringToMinutes("0837") -> 517.
// timeStringToMinutes("2359") -> 1439.
static int timeStringToMinutes(String s) {
return Integer.parseInt(s.substring(0, 2)) * 60 + Integer.parseInt(s.substring(2, 4));
}

接下来我们定义一个函数来计算时间差:

// Example: forwardNumberOfMinutes("1240", "1028") -> 1308.
static int forwardNumberOfMinutes(String start, String end) {
int from = timeStringToMinutes(start);
int to = timeStringToMinutes(end);
if (to < from)
to += 1440; // 1 day, or 24 hours
return to - from;
}

最后我们定义一个函数将线性时间转换为小时和分钟:

// Example: minutesToTimeString(1308) -> "2148" (21 hr 48 min).
static minutesToTimeString(int n) {
return String.format("%02d%02d", n / 60, n % 60);
}

关于java - HHMM 格式的总计时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33588183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com