Как посчитать «+1» при наступлении определенной даты

  • Автор темы mstr_dilettante
  • 38
  • Обновлено
  • 13, May 2024
  • #1
Всем привет! У меня есть этот код, с помощью которого я показываю будущий рабочий день, исключая таким образом выходные.

Я также хотел бы исключить персонализированные даты праздников, и в этом случае происходит то же самое (думаю, считается ++). Например, я хотел бы исключить эти даты: ["2019-11-6", "2019-11-13"] Как я могу интегрировать это в код?

Мне нужно это, чтобы показать будущую дату доставки в рабочий день, исключая выходные и некоторые пользовательские даты. Я прочитал и протестировал множество руководств, но не нашел ничего работающего.
 jQuery(function($) {

var monthNames = ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"];

var dayNames = ["domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato"]

var endDate = "",

noOfDaysToAdd = 1,

count = 0;

var someDate = new Date();

var numberOfDaysToAdd = noOfDaysToAdd;

someDate.setDate(someDate.getDate());

while (count < noOfDaysToAdd) {

endDate = new Date(someDate.setDate(someDate.getDate() + 1));

if (endDate.getDay() != 0 && endDate.getDay() != 6) {

count++;

}

}

$('#Date').html(dayNames[endDate.getDay()] + ' ' + endDate.getDate() + ' ' + monthNames[endDate.getMonth()] + ' ' + endDate.getFullYear());

});
Код (JavaScript): Код хорошо работает для исключения выходных, но я хотел бы помочь добавить и индивидуальные праздничные даты. Большое спасибо!

mstr_dilettante


Рег
01 Jan, 2011

Тем
1

Постов
3

Баллов
13
  • 06, Jun 2024
  • #2
После нескольких исследований я нашел решение, и оно, похоже, работает отлично.
Вот рабочий код для интересующихся:
 jQuery(function($) {

var monthNames = ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"];

var dayNames = ["domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato"];

var holidays = ["2019, 11, 8", "2019, 11, 11", "2019, 11, 12", "2019, 11, 13", "2019, 11, 14", "2019, 11, 15", "2019, 11, 18"];

var endDate = "",

noOfDaysToAdd = 3,

count = 0;

var someDate = new Date(new Date().toDateString());

var numberOfDaysToAdd = noOfDaysToAdd;

someDate.setDate(someDate.getDate());

while (count < noOfDaysToAdd) {

endDate = new Date(someDate.setDate(someDate.getDate() + 1));

var isHoliday = holidays.find(holiday => endDate.getTime() == new Date(holiday).getTime());

if (isHoliday) {

console.log('holiday, skipping');

} else if (endDate.getDay() != 0 && endDate.getDay() != 6) {

count++;

}

}

$('#Date').html(dayNames[endDate.getDay()] + ' ' + endDate.getDate() + ' ' + monthNames[endDate.getMonth()]);

});
Код (разметка):
 

Марго321


Рег
16 Jan, 2013

Тем
1

Постов
4

Баллов
14
Тем
49554
Комментарии
57426
Опыт
552966

Интересно