Я пытаюсь создать простой script, который дает мне следующую дату утилизации, основанную на двухнедельном расписании, начиная с 6 июля 2011 года. Поэтому я создал эту простую функцию...
function getNextDate(startDate) {
if (today <= startDate) {
return startDate;
}
// calculate the day since the start date.
var totalDays = Math.ceil((today.getTime()-startDate.getTime())/(one_day));
// check to see if this day falls on a recycle day
var bumpDays = totalDays%14; // mod 14 -- pickup up every 14 days...
// pickup is today
if (bumpDays == 0) {
return today;
}
// return the closest day which is in 14 days, less the # of days since the last
// pick up..
var ms = today.getTime() + ((14- bumpDays) * one_day);
return new Date(ms);
}
и может вызвать его как...
var today=new Date();
var one_day=1000*60*60*24; // one day in milliseconds
var nextDate = getNextDate(new Date(2011,06,06));
пока так хорошо... но когда я проецирую "сегодня" на 10/27/2011, я получаю вторник 11/8/2011 в качестве следующей даты вместо среды 11/9/2011... На самом деле каждый через день до 10/26/2011 проект правильного пикапа... и каждую дату с 27.10.2011 по 28.02.2012 проекты во вторник, а не в среду. И тогда каждая дата с 29.02.2012 (високосный год) до 10/24/2012 (снова хммм октябрь) правильно прогнозирует среду. Что мне не хватает? Любая помощь будет принята с благодарностью.
В