用Java写一段代码,给定一个时间字段deadline(yyyyMM),判断是今天或昨天或昨天之前的
时间: 2024-03-24 18:41:08 浏览: 80
好的,以下是Java代码实现:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DeadlineChecker {
public static void main(String[] args) {
String deadline = "202201"; // 设定截止日期
String result = checkDeadline(deadline);
System.out.println(result);
}
public static String checkDeadline(String deadline) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
Calendar deadlineCal = Calendar.getInstance();
try {
Date date = sdf.parse(deadline);
deadlineCal.setTime(date);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar now = Calendar.getInstance();
now.setTime(new Date());
if (deadlineCal.get(Calendar.YEAR) == now.get(Calendar.YEAR)
&& deadlineCal.get(Calendar.MONTH) == now.get(Calendar.MONTH)
&& deadlineCal.get(Calendar.DAY_OF_MONTH) == now.get(Calendar.DAY_OF_MONTH)) {
return "今天";
} else {
now.add(Calendar.DAY_OF_MONTH, -1);
if (deadlineCal.get(Calendar.YEAR) == now.get(Calendar.YEAR)
&& deadlineCal.get(Calendar.MONTH) == now.get(Calendar.MONTH)
&& deadlineCal.get(Calendar.DAY_OF_MONTH) == now.get(Calendar.DAY_OF_MONTH)) {
return "昨天";
} else {
now.add(Calendar.DAY_OF_MONTH, -1);
if (deadlineCal.before(now)) {
return "昨天之前";
}
}
}
return "未知";
}
}
```
代码中,我们首先设定了一个截止日期 `deadline`,然后调用 `checkDeadline` 方法来判断这个截止日期是今天、昨天还是昨天之前。具体实现逻辑如下:
1. 首先,我们使用 `SimpleDateFormat` 将 `deadline` 字符串转为 `Calendar` 对象 `deadlineCal`。
2. 接着,我们获取当前时间的 `Calendar` 对象 `now`。
3. 如果 `deadlineCal` 和 `now` 的年份、月份、日期都相同,则说明 `deadline` 是今天。
4. 如果 `deadlineCal` 比 `now` 小一天,则说明 `deadline` 是昨天。
5. 如果 `deadlineCal` 比 `now` 小两天或以上,则说明 `deadline` 是昨天之前。
最后,我们将判断结果返回即可。在该代码中,我们设定的截止日期为 `202201`,根据当前时间的不同,输出结果可能为 `今天`、`昨天`或`昨天之前`。
阅读全文