Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两个给定小时之间的迭代器_Java_Date_Time_Hour - Fatal编程技术网

Java 两个给定小时之间的迭代器

Java 两个给定小时之间的迭代器,java,date,time,hour,Java,Date,Time,Hour,我在一次求职面试中遇到了这样一个问题:“编写一个函数,得到两个字符串s,t,表示2小时(格式为HH:MM:SS)。众所周知,s早于t 该函数需要计算两个给定小时之间的小时数,最多包含2位数字 例如-s-10:59:00,t-11:00:59- 回答-11:00:00,11:00:01,11:00:10,11:00:11 我试着做了很多圈,结果被卡住了。不幸的是,我没有通过面试 如前所述,我如何在java中查看两个给定小时之间的所有小时(每秒都是新时间)?非常感谢java 8允许您使用LocalT

我在一次求职面试中遇到了这样一个问题:“编写一个函数,得到两个字符串s,t,表示2小时(格式为HH:MM:SS)。众所周知,s早于t

该函数需要计算两个给定小时之间的小时数,最多包含2位数字

例如-s-10:59:00,t-11:00:59- 回答-11:00:00,11:00:01,11:00:10,11:00:11

我试着做了很多圈,结果被卡住了。不幸的是,我没有通过面试


如前所述,我如何在java中查看两个给定小时之间的所有小时(每秒都是新时间)?非常感谢java 8允许您使用LocalTime

LocalTime time1 = LocalTime.parse(t1);
LocalTime time2 = LocalTime.parse(t2);
逻辑要求您计算LocalTime中不同位数的数量,如

boolean isWinner(LocalTime current) {
    String onlyDigits = DateTimeFormatter.ofPattern("HHmmss").format(current);
    Set<Character> set = new HashSet<>();
    for (int index = 0; index < onlyDigits.length(); index++) {
        set.add(onlyDigits.charAt(index));
    }
    return set.size() <= 2;
}
就这样

问题实际上更倾向于了解如何处理问题,如果您了解LocalTime API等。

“每一秒都是一个新的小时”——您是否将“小时”与“时间”混淆了?
int count = 0;
for (LocalTime current = time1; current.isBefore(time2); current = current.plusSeconds(1)) {
    if (isWinner(current)) {
        count++;
    }
}