сравнить массив дат, чтобы легко проверить совпадение дат в сценарии java - PullRequest
0 голосов
/ 09 июля 2020

Я хотел бы проверить любые конфликты дат, возникающие в моем массиве дат. У меня есть такой массив.

[['2020-07-03T18:30:00.125000Z','2020-07-04T01:30:00Z'],['2020-07-03T18:30:00.125000Z','2020-07-04T00:30:00Z'],['2020-07-03T18:30:00.125000Z','2020-07-04T00:30:00Z']]

Первая дата в отдельном массиве - это дата начала и дата окончания соответственно. Я хочу здесь проверить, первая дата массива конфликтует со следующими датами в массиве. Так что я могу назначить человека по дате. Один человек может назначить одной дате время. Так кто-нибудь знает идеальный способ решения этой проблемы в ES6?

1 Ответ

0 голосов
/ 14 июля 2020

Я создал функцию для решения этого вопроса. dateTimes - это массив, содержащий даты.

checkDateTimeOverlap = (dateTimes)=>{
        let isOverlap = false;
        dateTimes.forEach((time,i) => {
            let  st1 = time[0];
            let  et1 = time[1];
          
            dateTimes.forEach((time2,j) => {               
                if(i != j){
                    let st2 = time2[0];
                    let et2 = time2[1];
                    if (st1 >= st2 && st1 <= et2 || et1 >= st2 && et1 <= et2 || st2 >= st1 && st2 <= et1 || et2 >= st1 && et2 <= et1) {
                        isOverlap =  true;
                    }else{
                        isOverlap =  false;
                    }
                }
            })
        }); 

        return isOverlap;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...