Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
Есть 2 даты, от и до. Это интервал между 2 временными точками.
Задача посчитать дни между датами.
Если от и до в пределах 1 месяца то тут проблем нет.
Но если интервал в пределах года? Или интервал может включать разные года, например, 2012.12.12 - 2013.01.01
На выходе нужно получить массив вида
array[year][month][day]
Нужно учесть сколько дней в месяце и какой год (для февраля)
Кто осилит?
EuGen
Отправлено: 29 Декабря, 2012 - 20:30:39
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Bio man пишет:
Задача посчитать дни между датами.
- почему же тогда на выходе массив?
Имеется ли ввиду:
for(var D, M, Y, first =true; from <= to; from.setDate(from.getDate()+ 1))
{
D = from.getDate().toString();
M =(from.getMonth()+ 1).toString();
Y = from.getFullYear().toString();
if(first ||(M ==='1'&& D ==='1'))
result[Y]={};
if(first || D ==='1')
result[Y][M]=[];
first =false;
result[Y][M].push(D);
}
Если дата заканчивается 1 январем то это 1 января не попадает в массив... Есть дата, заканчивается 7 январем, с ней все ок.
И если заканчивается 2 январем то в массив попадает только 1 января!
В чем может быть проблема? (Добавление)
Что то странное. Изменил на 7 января, и последней день - 6 января!
Этот код выплняется в цикле, и для 1ой записи записывает на день меньше а последующие записи обрабатываются нормально!
Саныч
Отправлено: 02 Января, 2013 - 14:36:59
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.