Java 两个给定小时之间的迭代器
我在一次求职面试中遇到了这样一个问题:“编写一个函数,得到两个字符串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,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
如前所述,我如何在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++;
}
}