Непоследовательное поведение метода даты додзё - PullRequest
0 голосов
/ 07 августа 2020

Я создал сценарий для добавления 2 рабочих дней (будних дней) к одному из атрибутов дат. Здесь я использовал метод dojo.date.add, как показано ниже

 var SDate=new Date(dojo.date.stamp.fromISOString(workItem.getValue("SDate19")));
 var tempDate = dojo.date.add(SDate, "weekday", 2);

Он отлично работает и добавляет 2 дня, исключая выходные, пока SDate не будет любым рабочим днем, кроме пятницы. Если это SDate - пятница, то результат, который я получаю, будет воскресенье (в идеале рассчитанный результат должен быть вторником).

Например:

  • If Input (SDate ) - 5 августа 2020 г., 1:00 AM, тогда Result (tempDate) - 7 августа 2020 г., 1:00 AM

  • Если ввод - 6 августа 2020 г., 1:00 AM, тогда Результат - 10 августа 2020 г., 1:00 AM

  • Если ввод - 7 августа 2020 г., 1:00 AM, то результатом будет 9 августа 2020 г., 1:00 AM -> Здесь должен быть результат 11 августа 2020 г., 1:00 AM

Первоначально я думал, что эта проблема касается только пятниц. Но когда я увеличиваю количество дней с 2 ​​до 3, тогда эта проблема появляется также для четверга и пятницы.

И если я go при увеличении этого нет. дней, то проблема складывается и с другими днями недели.

Кто-нибудь заметил подобную проблему, или я здесь что-то делаю не так?

1 Ответ

0 голосов
/ 13 августа 2020

Что ж, вы нашли ошибку в dojo.date.add! Это происходит каждый раз, когда интервал равен «рабочим дням» и добавляется день недели, и сумма, которую нужно добавить, составляет 7 или больше.

Строка 161 dojo / date: var trgt = (strt + days), это должно быть: var trgt = (strt + days) % 7;

Вы можете либо не использовать dojo.date.add и написать свой собственный алгоритм, либо иметь свою собственную версию dojo.date, в которой вы измените строку 161, как описано выше.

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