Я довольно новичок в этом, поэтому извиняюсь, если ответ очевиден.Добавление дней до даты - Скрипты Google
Я пытаюсь добавить и вычесть дни с сегодняшней даты. Идея состоит в том, чтобы в конечном итоге рассчитать дату следующего понедельника и в последний понедельник.
Я посмотрел here, который решил мою первую проблему, но следующий озадачивает меня: вычитание дней с сегодняшнего дня работает без проблем. Добавление дает недопустимую дату.
Код:
function findDate() {
var d = new Date();
var n = d.getDay();
var makeDate = new Date(d.setDate(d.getDate()));
Logger.log(makeDate)
var weekDaysTo = new Array(7); //array of days to following Monday
weekDaysTo[0]= 1
weekDaysTo[1] = 7
weekDaysTo[2] = 6
weekDaysTo[3] = 5
weekDaysTo[4] = 4
weekDaysTo[5] = 3
weekDaysTo[6] = 2
Logger.log('weekDaysTo gives '+weekDaysTo[n])
var weekDaysFrom = new Array(7); //array of days to previous Monday
weekDaysFrom[0]= 6
weekDaysFrom[1] = 0
weekDaysFrom[2] = 1
weekDaysFrom[3] = 2
weekDaysFrom[4] = 3
weekDaysFrom[5] = 4
weekDaysFrom[6] = 5
var prevMon = new Date(makeDate+weekDaysTo[n]*3600000*24); //Converts ms into days and adds
Logger.log('Next Monday is '+prevMon);
var followingMon = new Date(makeDate-weekDaysFrom[n]*3600000*24); //Converts ms into days
Logger.log('Last Monday was ' +followingMon);
Журнал Выход:
[16-05-22 21:17:58:419 ICT] Sun May 22 21:17:58 GMT+07:00 2016
[16-05-22 21:17:58:419 ICT] weekDaysTo gives 1
[16-05-22 21:17:58:420 ICT] Next Monday is Invalid Date
[16-05-22 21:17:58:420 ICT] Last Monday was Mon May 16 2016 21:17:58 GMT+0700 (ICT)
Это независимо от значения I добавить к дате. Я не понимаю, почему вычитание работает нормально, но добавляет причины недопустимой даты. Изменение добавленных чисел не влияет, сменяя его на вычитание.
Вот есть! И узнал что-то новое. Спасибо! –