Публикация

Получение количества дней в месяце

Бывает, что необходимо узнать количество дней в месяце. Для этого можно использовать массив с дополнительным кодом для Февраля, но есть способ проще. JavaScript переполнит даты, созданные с недопустимыми значениями. Например, если мы создадим дату 33 февраля 2008 как:

var d = new Date(2008, 1, 33);

Дата, созданная и отображенная в окне, – это 4 марта 2008 (2008 год – високосный).
Следовательно, мы можем сказать, что последний день месяца – и число дней в месяце – это «нулевой» день следующего месяца – один день до первого. Следующий месяц вычисляется как текущий месяц (date.getMonth()) плюс один. JavaScript возвратит Январь следующего месяца, если прибавить 1 к Декабрю, то есть года переводятся так же, как и месяцы. Последний день месяца вычисляется так:

Date.prototype.lastday = function() {
var d = new Date(this.getFullYear(), this.getMonth() + 1, 0);
return d.getDate();
};

Число дней в месяце любой даты находится следующим образом:

var d = new Date(2008, 1, 5);
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...

Нравится

Поделиться

10 комментариев

Спасибо! Сталкивался с такой задачей...

--
www.it-sfera.com.ua

Тогда уже функцию в прототипе объявить как getLastDay.
С нулевым днем как-то не догадался, обычно от первого дня следующего месяца единицу отнимал :)

"Underscore a.k.a. _" написал:Тогда уже функцию в прототипе объявить как getLastDay.

AYW :)

?

Аббревиатура as you wish.

А. Вам тоже этот фильм понравился? :)

Какой фильм? Я просто у кого-то переняла :)

Как раз у себя использовал массив с дополнительной логикой для февраля и определением высокосного года.

Нужно будет оптимизировать по завершению разработки.

---
Конфигурация:
TSCRM 3.3.1.36
Firebird 2.0 (v.2.0.3.12981)

Рада, что Вам пригодилось, надо было раньше написать, а я еще сомневалась :)

"Раловец Ольга" написал:надо было раньше написать, а я еще сомневалась :)

В статье куча всего полезного, можно было и всю запостить, как такой себе мастер-класс по датам:smile:
Спасибо!

Показать все комментарии