嗨,我有一个 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/