一、判断时间数组是否连续(格式:yyyyMMdd)
public static String convert(String[] ints, int index) {
int end = index;
if (ints.length == index) {//结束条件,遍历完数组
return "";
} else {
for (int i = index; i < ints.length; i++) {
if (i < ints.length - 1) {
Date date1 = DateUtils.addDate(DateUtils.format(String.valueOf(ints[i]),"yyyyMMdd"),1);
Date date2 = DateUtils.format(String.valueOf(ints[i + 1]),"yyyyMMdd");
if (date1.getTime()==date2.getTime()){
end = i;
}
else {
if (i > index)
end = end + 1;
break;
}
} else {
if (end == ints.length - 2) {
end = ints.length - 1;
break;
}
}
}
if (index == end)//相等说明不连续
return ints[index] + "," + convert(ints, end + 1);
else//连续
return ints[index] + "-" + ints[end] + "," + convert(ints, end + 1);
}
}
二、判断数字数组是否连续
public static String convert(Integer[] ints, int index) {
int end = index;
if (ints.length == index) {//结束条件,遍历完数组
return "";
} else {
for (int i = index; i < ints.length; i++) {
if (i < ints.length - 1) {
if (ints[i] + 1 == ints[i + 1]) {
end = i;
} else {
if (i > index)
end = end + 1;
break;
}
} else {
if (end == ints.length - 2) {
end = ints.length - 1;
break;
}
}
}
if (index == end)//相等说明不连续
return ints[index] + "," + convert(ints, end + 1);
else//连续
return ints[index] + "-" + ints[end] + "," + convert(ints, end + 1);
}
}
有兴趣的朋友可以关注下本人的微信公众号:“JAVA菜鸟程序猿”