java 判断日期连续_java - Java-检查数组是否包含3个连续的日期 - 堆栈内存溢出
时间: 2024-01-14 07:05:07 浏览: 105
可以通过以下步骤判断一个数组中是否包含三个连续的日期:
1. 将数组中的日期按照从早到晚的顺序排序。
2. 遍历数组,从第一个日期开始,判断后续两个日期是否依次为前一个日期的后一天,如果是,则说明找到了三个连续的日期。
3. 如果遍历完整个数组仍未找到三个连续的日期,则说明数组中不存在三个连续的日期。
以下是一个示例代码实现:
```
public static boolean hasConsecutiveDates(Date[] dates) {
Arrays.sort(dates);
for (int i = 0; i < dates.length - 2; i++) {
if (isConsecutive(dates[i], dates[i+1], dates[i+2])) {
return true;
}
}
return false;
}
private static boolean isConsecutive(Date d1, Date d2, Date d3) {
Calendar c1 = Calendar.getInstance();
c1.setTime(d1);
Calendar c2 = Calendar.getInstance();
c2.setTime(d2);
Calendar c3 = Calendar.getInstance();
c3.setTime(d3);
return (c2.get(Calendar.DAY_OF_YEAR) == c1.get(Calendar.DAY_OF_YEAR) + 1
&& c3.get(Calendar.DAY_OF_YEAR) == c2.get(Calendar.DAY_OF_YEAR) + 1
&& c2.get(Calendar.YEAR) == c1.get(Calendar.YEAR)
&& c3.get(Calendar.YEAR) == c2.get(Calendar.YEAR));
}
```
注意,以上代码仅演示了判断日期连续的方法,实际使用时还需要根据具体情况进行适当的修改和完善。
阅读全文