Бывает, что необходимо узнать количество дней в месяце. Для этого можно использовать массив с дополнительным кодом для Февраля, но есть способ проще. JavaScript переполнит даты, созданные с недопустимыми значениями. Например, если мы создадим дату 33 февраля 2008 как:
Дата, созданная и отображенная в окне, – это 4 марта 2008 (2008 год – високосный).
Следовательно, мы можем сказать, что последний день месяца – и число дней в месяце – это «нулевой» день следующего месяца – один день до первого. Следующий месяц вычисляется как текущий месяц (date.getMonth()) плюс один. JavaScript возвратит Январь следующего месяца, если прибавить 1 к Декабрю, то есть года переводятся так же, как и месяцы. Последний день месяца вычисляется так:
var d = new Date(this.getFullYear(), this.getMonth() + 1, 0);
return d.getDate();
};
Число дней в месяце любой даты находится следующим образом:
Log.Write(1, d.lastday());
Запись в логе покажет число дней в месяце: в этом примере – 29. (Второй аргумент, 1, в конструкторе Date это Февраль, Январь – 0.)
Источник: http://www.codeisart.ru/%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD...
Спасибо! Сталкивался с такой задачей...
Тогда уже функцию в прототипе объявить как getLastDay.
С нулевым днем как-то не догадался, обычно от первого дня следующего месяца единицу отнимал :)
"Underscore a.k.a. _" написал:Тогда уже функцию в прототипе объявить как getLastDay.
AYW :)
Как раз у себя использовал массив с дополнительной логикой для февраля и определением высокосного года.
Нужно будет оптимизировать по завершению разработки.
---
Конфигурация:
TSCRM 3.3.1.36
Firebird 2.0 (v.2.0.3.12981)
Рада, что Вам пригодилось, надо было раньше написать, а я еще сомневалась :)