如果当前日期在07:50:00' - 17:00:00';执行a方法 如果时间在17:00:00' 01:30:00',就要分情况如果当前时间在17:00-23:59那就是 当天的17点到第二天的01点,如果当前时间在00点之后那就是昨天的17点-当天的01-30 如果时间在01:30 -07:50那就是当天的时间01:30-当天的时间07:50 使用java 根据条件判断时间获取时间存入map
时间: 2023-12-03 10:43:06 浏览: 60
Java程序开发教学课件:07Java标准类库2.pptx
可以使用Java中的Calendar和Date类来实现该需求。具体实现如下:
```java
import java.util.*;
public class TimeMap {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
Calendar cal = Calendar.getInstance();
Date now = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(now);
String date = currentTime.substring(0, 10);
String time = currentTime.substring(11, 19);
if (time.compareTo("07:50:00") >= 0 && time.compareTo("17:00:00") <= 0) {
a(map, date + " " + time);
} else if (time.compareTo("17:00:00") > 0 && time.compareTo("01:30:00") <= 0) {
if (time.compareTo("23:59:59") <= 0) {
b(map, date + " " + "17:00:00", date + " " + time);
} else {
cal.add(Calendar.DATE, -1);
date = sdf.format(cal.getTime()).substring(0, 10);
b(map, date + " " + "17:00:00", date + " " + "01:30:00");
}
} else if (time.compareTo("01:30:00") > 0 && time.compareTo("07:50:00") <= 0) {
c(map, date + " " + "01:30:00", date + " " + time);
}
// 输出map中的数据
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " -> " + entry.getValue());
}
}
public static void a(Map<String, String> map, String time) {
// 执行a方法
map.put("a方法执行时间", time);
}
public static void b(Map<String, String> map, String startTime, String endTime) {
// 执行b方法
map.put("b方法开始时间", startTime);
map.put("b方法结束时间", endTime);
}
public static void c(Map<String, String> map, String startTime, String endTime) {
// 执行c方法
map.put("c方法开始时间", startTime);
map.put("c方法结束时间", endTime);
}
}
```
说明:首先获取当前时间并将其拆分成日期和时间两部分。然后根据时间的范围判断执行哪个方法,并将对应的时间存入map中。最后输出map中的数据。
阅读全文