У меня есть массив дат в диапазоне одной недели, сохраненный необычным способом.
Даты хранятся в этом числовом формате: 12150
Слева направо:
1-я цифра обозначает день: 1 = воскресенье, 2 = понедельник, 3 = вторник, ...., 7 = суббота
следующие две цифры представляют час в 24-часовой системе: 00 = полночь, 23 = 23:00
.
следующие две цифры представляют минуты: 00-59
Учитывая дату ввода, а также дату начала и окончания, мне нужно знать, находится ли дата ввода между датой начала и окончания.
У меня сейчас есть алгоритм, который, как мне кажется, работает , работает 100% времени, но я не уверен.
В любом случае, я думаю, что, возможно, есть лучший и более простой способ сделать это, и мне было интересно, знает ли кто-нибудь, что это за алгоритм.
Если нет, было бы здорово, если бы кто-то мог дважды проверить мою работу и убедиться, что она действительно работает для 100% действительных случаев.
Сейчас у меня есть:
if (startDate < inputDate &&
endDate > inputDate) {
inRange = yes;
}
else if (endDate < startDate) {
if((inputDate + 72359) > startDate &&
(inputDate + 72359) < endDate) {
inRange = yes;
}
else if((inputDate + 72359) > startDate &&
(inputDate + 72359) < (endDate + 72359)) {
inRange = yes;
}
}