Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Страница не открывается со скриптом (https://javascript.ru/forum/misc/71589-stranica-ne-otkryvaetsya-so-skriptom.html)

ArtyomZaitsev 29.11.2017 23:03

Страница не открывается со скриптом
 
Добрый день, может кто объяснить почему мой скрипт рушит страницу? Не могу открыть, консоль также не открывается на данной странице. Задача была следующей: "Напишите функцию getLastDayOfMonth(year, month), которая возвращает последний день месяца.
Параметры:
year – 4-значный год, например 2012.
month – месяц от 0 до 11.
Например, getLastDayOfMonth(2012, 1) = 29 (високосный год, февраль)."
function getLastDayOfMonth(year, month){
        var date = new Date (year, month);
        var dateM=date.getMonth();

        while (dateM==month){
            var i=date.setDate(date.getDate()+1);
        }
        return i;
    };

    alert(getLastDayOfMonth(2012, 1));

рони 29.11.2017 23:27

ArtyomZaitsev,
бесконечный цикл, строка 5, условие всегда true

рони 29.11.2017 23:29

ArtyomZaitsev,
function getLastDayOfMonth(year, month){
        var date = new Date (year, month+1, 0);
        return date.getDate();
   };

alert(getLastDayOfMonth(2012, 1));

рони 29.11.2017 23:39

ArtyomZaitsev,
function getLastDayOfMonth(year, month){
        var date = new Date (year, month);
        var dateM=date.getMonth();
        var i = 28;
        while (dateM==month){
            date.setDate(++i);
            dateM=date.getMonth();
        }
        return --i;
    };

    alert(getLastDayOfMonth(2012, 1));

ArtyomZaitsev 29.11.2017 23:49

Спасибо большое!

Lion777 29.11.2017 23:58

Плин ронни )), я методом тыка это сделал )) и меня опередили
function getLastDayOfMonth(year, month) {
    var date = new Date(year, month, 0);
    return date.getDate();
}
alert(getLastDayOfMonth(2012, 2))

только зачем month+1 ?

или вот такой вариант вначале придумал
function getLastDayOfMonth(year, month) {
    var date = new Date(year, month - 1, 32);
    return (32 - date.getDate());
}
alert(getLastDayOfMonth(2012, 2))

рони 30.11.2017 00:47

Цитата:

Сообщение от Lion777
только зачем month+1 ?

Цитата:

Сообщение от ArtyomZaitsev
getLastDayOfMonth(2012, 1) = 29 (високосный год, февраль)."

:-?


Часовой пояс GMT +3, время: 04:48.