Проверка последовательных дат Java

352
20 июня 2017, 23:41

Есть массив дат - {"2017-06-17", "2017-06-19", "2017-06-16", "2017-06-18"}.

Как мне проверить что эти даты последовательные? тобишь что нет прерываний.

Answer 1

var arr = ["2017-06-17", "2017-06-18", "2017-06-19", "2017-06-18"]; 
var arr2 = ["2017-06-17", "2017-06-18", "2017-06-19", "2017-06-20"]; 
var arr3 = ["2017-12-30", "2017-12-31", "2018-01-01", "2018-01-02"]; 
var arr4 = ["2017-12-30", "2017-11-31", "2017-12-30", "2018-01-02"]; 
 
 
function isDateSequence(arr) { 
  var d1, d2 = ""; 
   
  for (var i = 0; i < arr.length - 1  ; ++i) { 
      d1 = new Date(arr[i]); 
      d2 = new Date(arr[i + 1]);    
             
      // 86400000 - это +1 день 
      if (d1.getTime() + 86400000 != d2.getTime())  {         
        return false; 
      } 
  } 
   
  return true; 
}   
 
console.log(isDateSequence(arr)); 
console.log("---------------"); 
console.log(isDateSequence(arr2)); 
console.log("---------------"); 
console.log(isDateSequence(arr3)); 
console.log("---------------"); 
console.log(isDateSequence(arr4));

Answer 2

Вот вариант в лоб:

private static boolean isSerial(String[] datesArray) throws ParseException {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(simpleDateFormat.parse(datesArray[0]));
    for (int i=1; i<datesArray.length; i++) {
        calendar.add(Calendar.DATE, 1);
        String currentDate = simpleDateFormat.format(calendar.getTime());
        if (!currentDate.equals(datesArray[i])) {
            return false;
        }
    }
    return true;
}
READ ALSO
Java Graphics Pictures

Java Graphics Pictures

Здравствуйте! Пишу игру, добавляю 2 картинку в JFrame - подставка, картошкаВсегда отображается по разному

302
Сохранение boolean в SharedPreferences

Сохранение boolean в SharedPreferences

В активити есть два элемента CheckBox, значение которых я сохраняю в SharedPreferencesВозникла проблема - при изменении одного из них, изменяется записанное...

348
Как учесть обновление приложения?

Как учесть обновление приложения?

Собираюсь выложить приложение на PlayMarket, с последующим его обновлением

226