Здравствуйте, engeen, Вы писали:
E>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет? Количество дней в заданном месяце ?
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, engeen, Вы писали:
E>>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет? B>Количество дней в заданном месяце ?
E>JavaScript в сабже написано? Или нет?
А вы там где-то код увидели? Или количество дней в месяце зависит от языка программирования?
Конкретно: Re: Количество дней в заданном месяце ?
Здравствуйте, engeen, Вы писали:
E>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет?
Внизу функция проверки даты на валидность, повыдерай то, что тебе нужно.
Здравствуйте, engeen, Вы писали:
E>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет?
E>>JavaScript в сабже написано? Или нет? B>А вы там где-то код увидели? Или количество дней в месяце зависит от языка программирования? B>Конкретно: Re: Количество дней в заданном месяце ?
Вы чего? Какой нафиг високосный год в JavaScript. То что предлагается это классическая задачка по программированию.
А настоящие индейцы делают так:
var MILLIDAY=86400000;
var tmpDate1 = //Воткнуть первое число нужного месяца;var tmpDate2 = //Воткнуть первое число следующего месяца;var dVal = модуль_от( tmpDate1.valueOf()-tmpDate2.valueOf() );
var dDate = dVal/MILLIDAY;
Все дело в том, что valueOf() — это количество миллисекунд прошедших от чего-то там.
Ну и MILLIDAY — это заранее просчитаное количество милисекунд в одних сутках.
С>var tmpDate1 = //Воткнуть первое число нужного месяца; С>var tmpDate2 = //Воткнуть первое число следующего месяца;
а если месяц 12-й, то код разрастается на строчку.
проще
Здравствуйте, 12345_, Вы писали:
С>>var tmpDate1 = //Воткнуть первое число нужного месяца; С>>var tmpDate2 = //Воткнуть первое число следующего месяца; _>а если месяц 12-й, то код разрастается на строчку. _>проще
1) Если это:D=year%4==0&&(year%100!=0||year%400==0); проще, то код ни на какую строчку не возрастет, а будет конструкция (mm==12?1:mm+1) и (mm==12?yyyy+1:yyyy).
2) а еще можно посчитать количество дней между двумя произвольными датами Это так... бонус
Здравствуйте, engeen, Вы писали:
E>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет?
Здравствуйте, DSD, Вы писали:
DSD>Здравствуйте, engeen, Вы писали:
E>>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет? DSD>
А exceptions уже отменили?
Никогда не делайте так. Функция либо должна выдавать ответ, либо падать на пол и дрыгать ногами в истерике.
Багу такого типа ловить при большом количестве кода долго и трудно.
Здравствуйте, Сэма, Вы писали:
С>Здравствуйте, DSD, Вы писали:
DSD>>Здравствуйте, engeen, Вы писали:
E>>>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет? DSD>>
С>А exceptions уже отменили? С>Никогда не делайте так. Функция либо должна выдавать ответ, либо падать на пол и дрыгать ногами в истерике.
данущаз! какие exceptions в JScript/JavaScript?
с какого перепугу ОНО _ДОЛЖНО_ падать и дрыгать ногами?
это просто сервисная функция, которая как раз _НЕ_ДОЛЖНА_ работать с пользователем и интерфейсом программы на прямую.
поэтому задача этой функции — либо вернуть результат, либо вернуть заранее оговоренным способом значение ошибки. а программист должен возвращаемое значение проверить. либо второй вариант — не вернуть ошибку, а записать в системмную переменную типа errno.
функции в различных библиотеках пишутся именно так.
так что не надо тут всем подряд навязывать ваше субъективное мнение, ок?
P.S. в JavaScript конечно можно поднять exception, но... в большинстве своем юзера пугаются сообщений об ошибках, поэтому обычно все пытаются их как раз таки заглушить или сделать менее страшными(например писать в лог ошибок, а не кидаться в юзера страшными окнами)...
С>Багу такого типа ловить при большом количестве кода долго и трудно.
если вам так угодно, проверяйте возвращаемое значение вне функции сами, и что хотите потом, то и делайте, exception подымайте или еще что.
С>А exceptions уже отменили? С>Никогда не делайте так. Функция либо должна выдавать ответ, либо падать на пол и дрыгать ногами в истерике. С>Багу такого типа ловить при большом количестве кода долго и трудно.
кстати, если выделенную вами строчку убрать, она не упадет и не задрыгает ногами, а просто вернет NULL или undefined.
ведь это выход за пределы массива, а так как в JScript массив собственно массивом не является(это COM-интерфейс, работающий по принципу HASH — именованного массива c произвольным типом элементов(void *), как в Perl или PHP), то и ошибки не возникнет.
Здравствуйте, DSD, Вы писали: DSD>кстати, если выделенную вами строчку убрать, она не упадет и не задрыгает ногами, а просто вернет NULL или undefined. DSD>ведь это выход за пределы массива, а так как в JScript массив собственно массивом не является(это COM-интерфейс, работающий по принципу HASH — именованного массива c произвольным типом элементов(void *), как в Perl или PHP), то и ошибки не возникнет.
А вот это правильно Согласен работать с такой функцией.
Вот вариант вытаскивания числа дней за счёт встроенных функций JS. Но я не сказал бы, что это выглядит проще (округление введено для учёта летнего времени).
Здравствуйте, engeen, Вы писали:
E>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет?
Что-то типа:
function numDaysIn(YEAR,MONTH)
{
var d = new Date();
for( var nd = 31; nd >= 28; ++nd )
{
d.day = 1;
d.month = MONTH;
d.year = YEAR;
d.day = nd;
if( d.month == MONTH ) return nd;
}
}
объект Date в ECMAScript использует функции,
а это на самом деле мой tiscript),
но это самый идеологически правильный способ.
Здравствуйте, DSD, Вы писали:
DSD>Здравствуйте, engeen, Вы писали:
E>>Приветствую! Ничего не нашел, что помогло бы узнать количество дней в заданном месяце заданного года. Может, кто подскажет? DSD>