Java - 检查数组是否包含 3 个连续日期

标签 java arrays date

嗨,我有一个 String[] 数组,其中包含格式为 YYYY/MM/DD 的日期。我想迭代这个数组,看看数组中接下来的 2 个元素是否包含连续的日期。如果他们这样做,那么只需增加计数变量即可。这是我到目前为止所拥有的。我基本上只是需要有关检查是否有 3 个连续日期的 if 语句的帮助。

int count = 0;

String[] dates = { 
        "2004/1/23", "2004/1/24", "2004/1/25",
        "2004/1/26", "2004/1/29", "2004/2/11", 
        "2004/2/17", "2004/2/18", "2004/2/18", "2004/3/7"};

for(int i = 0; i < dates.length-2; i++){

    //Help needed here! If i, i+1 and i+2 are consecutive...
    if(...){
        count++;
    }
}

我意识到我可能需要将字符串日期转换为实际的日期对象,然后才能比较它们。进一步的指导将不胜感激。谢谢

最佳答案

String[]转换为Date[](即准备一个Date数组)。我想您已经知道如何执行此操作。

现在您可以使用如下命令检查连续日期:

Calendar c = Calendar.getInstance();
int numConsecutive = 0;
Date last = null;

for (int i = 0; i < dates.length; i++) {
    c.setTime(dates[i]);
    c.add(Calendar.DATE, -1);
    if (c.getTime().equals(last)) {
        numConsecutive++;
    } else {
        numConsecutive = 0;
    }
    if (numConsecutive == 2) {
        numConsecutive = 0;
        count++;
    }
    last = dates[i];
}

关于Java - 检查数组是否包含 3 个连续日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211132/

相关文章:

Excel SUMIF 日期之间

java - 更改字符串日期格式

java - hibernate 和 thrift 之间的转换

java - Fasterxml Jackson 自动将非 boolean 值转换为 boolean 值

java - 新的 ObjectInputStream 导致挂起/超时

java - 即使存在数据,Android TextView 也不会在 setText 上显示数据

javascript - 对于多维数组中的每个数组

php - 从 MySQL 查询构建数组

android - 转换日期/时间毫秒 Android

c - 从数组中删除数字?