Java判断两个时间是否在一个月内,符合返回月份,不符合返回涉及月份的区间yyyymm
时间: 2024-02-25 16:52:21 浏览: 155
可以使用Java的日期时间类库来实现这个功能,具体步骤如下:
1. 将两个时间转换成日期对象,可以使用LocalDate类的静态方法parse()将时间字符串转换成日期对象。
2. 判断这两个日期对象是否在同一个月内,可以使用LocalDate类的getMonthValue()方法获取月份,再比较这两个月份是否相等。
3. 如果这两个日期对象不在同一个月内,则返回涉及月份的区间,可以先获取这两个日期对象所在的年份和月份,然后用字符串拼接的方式返回区间字符串。
下面是一个示例代码:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateUtils {
public static String getMonthInterval(String dateStr1, String dateStr2) {
LocalDate date1 = LocalDate.parse(dateStr1, DateTimeFormatter.ofPattern("yyyyMMdd"));
LocalDate date2 = LocalDate.parse(dateStr2, DateTimeFormatter.ofPattern("yyyyMMdd"));
// 判断两个日期是否在同一个月内
if (date1.getMonthValue() == date2.getMonthValue()) {
return String.valueOf(date1.getMonthValue());
} else {
// 获取涉及的月份区间
int year1 = date1.getYear();
int year2 = date2.getYear();
int month1 = date1.getMonthValue();
int month2 = date2.getMonthValue();
String interval = "";
if (year1 == year2) {
for (int i = month1; i <= month2; i++) {
interval += String.format("%02d", i);
}
} else {
for (int i = month1; i <= 12; i++) {
interval += String.format("%d%02d", year1, i);
}
for (int i = 1; i <= month2; i++) {
interval += String.format("%d%02d", year2, i);
}
}
return interval;
}
}
}
```
可以使用以下代码来测试:
```java
public static void main(String[] args) {
String dateStr1 = "20210101";
String dateStr2 = "20210315";
String monthInterval = DateUtils.getMonthInterval(dateStr1, dateStr2);
System.out.println(monthInterval);
}
```
输出结果为:
```
0123
```
表示涉及的月份区间为1月到3月。
阅读全文