Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2010, 22:36
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Несколько способов определения количества дней в месяце
Почти всегда существует не один способ сделать нечто. Например, существует, по крайней мере, 3 способа узнать количество дней в месяце.

1. Через заранее приготовленный список
Многословный, но самый быстрый
Date.prototype.isLeapYear = function()
{
    var y = this.getFullYear();
    return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
};

Date.prototype.getDaysInMonth = function()
{
    return arguments.callee[this.isLeapYear() ? 'L' : 'R'][this.getMonth()];
};

// durations of months for the regular year
Date.prototype.getDaysInMonth.R = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// durations of months for the leap year
Date.prototype.getDaysInMonth.L = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];


2. Установкой на заведомо некорректный день
Короче, но дольше
Date.prototype.getDaysInMonth = function ()
{
    var here = new Date(this.getTime());
    here.setDate(32);
    return 32 - here.getDate();
};


3. Почти тоже самое что и перед этим
Самый короткий и почти такой же долгий как предыдущий
Date.prototype.getDaysInMonth = function()
{
    return (new Date(this.getFullYear(), this.getMonth() + 1, 0)).getDate();
};
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2010, 23:04
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

для кого предназначается данный пост?
если для новичков, то некоторые из них могут даже не сообразить как использовать этот код, так как не знакомы с протитипным наследованием, и работой с this
если для уже продолжающих, то они и сами смогут это сделать с нуля
Ответить с цитированием
  #3 (permalink)  
Старый 29.04.2010, 10:31
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Gvozd, расчитано на размещение ссылки на форуме, смотри линк и ник автора
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск