用java 使用嵌套map获取当前时间对应时间段的数值
时间: 2024-05-01 18:23:50 浏览: 82
Java获得当前时间
假设你有一个嵌套的Map,其中键是时间段的字符串,值是该时间段的数值。你可以使用Java中的LocalTime类来获取当前时间,并将其与每个时间段进行比较,以找到当前时间段的数值。
以下是一个示例代码:
```java
import java.time.LocalTime;
import java.util.HashMap;
import java.util.Map;
public class TimeMapExample {
public static void main(String[] args) {
Map<String, Integer> timeMap = new HashMap<>();
timeMap.put("00:00-06:00", 10);
timeMap.put("06:00-12:00", 20);
timeMap.put("12:00-18:00", 30);
timeMap.put("18:00-24:00", 40);
LocalTime currentTime = LocalTime.now();
String currentKey = null;
for (String key : timeMap.keySet()) {
String[] times = key.split("-");
LocalTime start = LocalTime.parse(times[0]);
LocalTime end = LocalTime.parse(times[1]);
if (currentTime.isAfter(start) && currentTime.isBefore(end)) {
currentKey = key;
break;
}
}
if (currentKey != null) {
int currentValue = timeMap.get(currentKey);
System.out.println("Current value for time period " + currentKey + " is " + currentValue);
} else {
System.out.println("No value found for current time");
}
}
}
```
在此示例中,我们创建一个名为timeMap的Map,并将每个时间段的字符串与其相应的值(10, 20, 30, 40)关联起来。然后,我们使用LocalTime.now()获取当前时间,并使用split()方法将时间段字符串分成开始时间和结束时间。接下来,我们使用isAfter()和isBefore()方法将当前时间与每个时间段进行比较,并找到当前时间段的键。最后,我们使用get()方法从Map中获取当前时间段的值,并将其打印到控制台上。
阅读全文