Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.51/57: Рейтинг темы: голосов - 57, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
1

Определить, является ли введенный год високосным

08.10.2013, 16:52. Просмотров 11593. Ответов 29
Метки нет (Все метки)

Javascript
1
2
3
4
5
6
7
8
9
<html>
<script type="text/javascript">
,,,
function isLeapYear (year) {
    return new Date(year, 1, 29).getMonth() == 1;
}
,,,
</script>
</html>
Как ввести в код год и сделать результат?
Пробовала, через var year=prompt("Ввести год ");
Помогите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2013, 16:52
Ответы с готовыми решениями:

Скрипт, определяющий по введенной дате рождения знак зодиака, день недели, был ли год рождения високосным.
Здравствуйте, ребят буду благодарен если кто напишет, в написанном постараюсь разобраться сам. ...

Определить, является ли введенный пользователем год високосным
3)На языке программирования С++ напишите программу, определяющую, является ли введенный...

Является ли введенный пользователем год високосным
Создайте программу, которая определяет, является ли введенный пользователем год-високосный год или...

Переменная isSpecial возвращает значение истина, если: Введенный год, является високосным
Переменная isSpecial возвращает значение истина, если: Введенный год, является високосным

29
386 / 273 / 76
Регистрация: 19.09.2011
Сообщений: 828
08.10.2013, 17:46 2
Rosa, Rosa,
Javascript
1
2
3
function isLeapYear (year) {
    return year % 4 === 0;
}
если каждый четвертый год - високосный, то любой год, который делится на 4 без остатка - високосный.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
  <head></head>
    <body>
        <script>
            function isLeapYear (year) {
                return year % 4 === 0;
            }
            var year = +prompt("Введи год:");
            if(isNaN(year)){
                alert("Нужно ввести целое число.")
            }
            if(isLeapYear(year)){
                alert("Год " + year + " - високосный.");
            } else {
                alert("Год " + year + " - не високосный.");
            }
        </script>
    </body>
</html>
1
супермизантроп
Эксперт JS
3578 / 2763 / 660
Регистрация: 18.04.2012
Сообщений: 8,304
08.10.2013, 18:28 3
nubideus, смешно

вы дали определение високосного года по Юлианскому календарю
а весь мир уже давно - с конца 16 века - живёт по Григорианскому

так что в 15 веке вы бы имели звание программиста, если б такое звание было
а в 21 веке?.. я даже и не знаю, как вас называть
0
386 / 273 / 76
Регистрация: 19.09.2011
Сообщений: 828
08.10.2013, 18:57 4
kalabuni, 2012 год високосный? - да. 2012 делиться на 4 без остатка? - тоже да. какие проблемы?
0
супермизантроп
Эксперт JS
3578 / 2763 / 660
Регистрация: 18.04.2012
Сообщений: 8,304
08.10.2013, 19:27 5
nubideus, у меня проблем нет

проблемы у вас
двоечник
0
386 / 273 / 76
Регистрация: 19.09.2011
Сообщений: 828
08.10.2013, 19:36 6
kalabuni, я не спрашиваю у кого проблемы, я спрашиваю какие проблемы в опредении високосности года.

в задаче не описано учесть календари майя и прочих.
дефолтно в контексте программирования рассматриваются даты от 1970 года.
0
2818 / 1628 / 252
Регистрация: 03.12.2007
Сообщений: 4,223
08.10.2013, 22:04 7
Цитата Сообщение от nubideus Посмотреть сообщение
дефолтно в контексте программирования рассматриваются даты от 1970 года
Допустим. А [невисокосный] 2100-й случайно не раньше 1970-го по твоему календарю?
0
386 / 273 / 76
Регистрация: 19.09.2011
Сообщений: 828
08.10.2013, 22:29 8
Цитата Сообщение от Somebody Посмотреть сообщение
2100-й
пока 2100 настанет, текущие исполняемые файлы уже негде будет исполнять, разве что в музеях
0
Эксперт JSЭксперт HTML/CSS
2422 / 1101 / 309
Регистрация: 23.06.2011
Сообщений: 3,449
09.10.2013, 08:24 9
Цитата Сообщение от kalabuni Посмотреть сообщение
проблемы у вас
двоечник
А есть ли смысл пересчитывать согласно этим данным?
Иными словами, год является високосным в двух случаях: либо он кратен 4, но при этом не кратен 100, либо кратен 400. Год не является високосным, если он не кратен 4, либо он кратен 100, но при этом не кратен 400.
Последние годы столетий, оканчивающиеся на два нуля, в трёх случаях из четырёх не являются високосными. Так, годы 1700, 1800 и 1900 не являются високосными, так как они кратны 100 и не кратны 400. Годы 1600 и 2000 — високосные, так как они кратны 400. Годы 2100, 2200 и 2300 — невисокосные. В високосные годы вводится дополнительный день — 29 февраля.
да и это предупреждение оптимизма не прибавляет
Проверить информацию.
Необходимо проверить точность фактов и достоверность сведений, изложенных в этой статье.
На странице обсуждения должны быть пояснения.
А может и не быть, забавно.


Не так давно сам по телику видел, есть мужик у которого количество правок википедии превысило миллион. И еще много народу у которых количество правок исчисляется сотнями тысяч.
Сразу возникают вопросы к такой информации.
0
супермизантроп
Эксперт JS
3578 / 2763 / 660
Регистрация: 18.04.2012
Сообщений: 8,304
09.10.2013, 10:59 10
Цитата Сообщение от newJS Посмотреть сообщение
это предупреждение оптимизма не прибавляет
это предупреждение относится к правилам оформления информации, но не к её достоверности

возникли сомнения в истинности определения високосного года?
перед вами вся сеть и Гугл в помощь

сомнения должны быть разумными, сиречь обоснованными
т.е. если вы можете предоставить другой источник, где имеется альтернативное определение високосного года, тогда да - ваше полное право сомневаться

а сейчас вы выглядите как тот самый Упрямый Фома
0
386 / 273 / 76
Регистрация: 19.09.2011
Сообщений: 828
09.10.2013, 16:09 11
Цитата Сообщение от kalabuni Посмотреть сообщение
Упрямый Фома
внушение детям слепо верить в любой чих, и при этом призыв навязывать это остальным детям.
вспоминается эксперимент с пятью обезьянами и бананом.

наверное так и появились люди, которые заряжали банки от излучений телевизора.
0
супермизантроп
Эксперт JS
3578 / 2763 / 660
Регистрация: 18.04.2012
Сообщений: 8,304
09.10.2013, 16:27 12
Цитата Сообщение от nubideus Посмотреть сообщение
внушение детям слепо верить в любой чих
когда родите своих детей, вы их не уверяйте, что нельзя совать пальцы в розетку, и что нельзя прыгать с 9 этажа...

пусть они у вас сами "прочихаются"
0
Эксперт JSЭксперт HTML/CSS
2422 / 1101 / 309
Регистрация: 23.06.2011
Сообщений: 3,449
09.10.2013, 22:04 13
Цитата Сообщение от kalabuni Посмотреть сообщение
nubideus, смешно
вы дали определение високосного года по Юлианскому календарю
а весь мир уже давно - с конца 16 века - живёт по Григорианскому
Вот такое утверждение вижу уже не первый раз, по поводу календарей, только ни разу не увидел "правильного" от kalabuni кода, и на прямой вопрос тоже не было ответа.
Получается что отвечать то не чего, так как на сегодня, и на ближайшие десятилетия, это абсолютно не актуально, и ни чего кроме умничания в этом нет. ИМХО.
Где аргументы против упрощенного расчета кроме ссылок на брехливую википедию.
0
супермизантроп
Эксперт JS
3578 / 2763 / 660
Регистрация: 18.04.2012
Сообщений: 8,304
10.10.2013, 07:21 14
Цитата Сообщение от newJS Посмотреть сообщение
ни разу не увидел "правильного" от kalabuni кода
специальный "правильный" код не нужен, ибо в объект Date () уже "вшиты" все расчёты
текущий год невисокосный, поэтому, если установите var d = new Date (2013, 1, 29);
то alert (d.getDate ()); покажет не 29 число февраля (которого нет), а 1 число марта, т.е. день, следующий за 28 февраля
исходя из этого, легко определить високосность любого года

Цитата Сообщение от newJS Посмотреть сообщение
на сегодня, и на ближайшие десятилетия, это абсолютно не актуально, и ни чего кроме умничания в этом нет. ИМХО. Где аргументы против упрощенного расчета кроме ссылок на брехливую википедию.
вы живёте исключительно сегодняшним днём, как и большинство млекопитающих

но есть люди, которые мыслят более широко
некоторых, например, интересует прошлое
вот этим людям иногда надо узнать:
-- в какой день недели родился Альберт Энштейн?
-- выходила ли газета "Times" 29 февраля 1900 года?
для них "правильный" календарь абсолютно необходим

также "правильный" календарь абсолютно необходим астрономам
да и много кому ещё на этой планете интересен не только World of Tanks...
0
Эксперт JSЭксперт HTML/CSS
2422 / 1101 / 309
Регистрация: 23.06.2011
Сообщений: 3,449
10.10.2013, 08:18 15
Это уже похоже на ответ.
Вот только пусть этими расчетами занимаются те кому это нужно, и там где это нужно.
На данный момент это не всегда и не всем нужно.

А насчет млекопитающих, то тут достаточно вспомнить кого не однократно за подобное банили, и сразу станет понятно, кто есть кто.
0
327 / 85 / 19
Регистрация: 08.01.2015
Сообщений: 986
Записей в блоге: 1
19.01.2019, 20:30 16
Javascript
1
2
var now = new Date();
var february_MAX_day = ((now.getFullYear() - 2016  )%4 === 0) ? 29 : 28
0
супермизантроп
Эксперт JS
3578 / 2763 / 660
Регистрация: 18.04.2012
Сообщений: 8,304
20.01.2019, 11:16 17
Htext, ваш код пытается (при этом неудачно!) определить количество дней в феврале текущего года, а ТС желала узнать високосность ЛЮБОГО введённого ею года
Верной будет следующая функция:
Javascript
1
2
3
4
5
6
7
8
9
10
function leapYear (year)
{
var f29 = new Date (year, 1, 29)
return (f29.getMonth () == 1);
}
// функция вернёт true в случае, если year високосный, и false, если нет
 
alert ( leapYear (2000)); // високосный, true
alert ( leapYear (2019)); // обычный, false
alert ( leapYear (1969)); // обычный, false
и, кстати, случайно нашёл пруф алгоритма определения високосного года от Майкрософта, здесь выше по тексту обсуждения некоторых упёртых не убеждала ссылка на википедию
1
525 / 429 / 175
Регистрация: 14.10.2017
Сообщений: 1,196
20.01.2019, 12:25 18
Javascript
1
2
3
const isLeapYear = year => !(year % 100) ? !(year % 400) : !(year % 4);
for(let i = 1999; i < 2105; i++)
    console.log(i + ' ' + isLeapYear(i));
0
327 / 85 / 19
Регистрация: 08.01.2015
Сообщений: 986
Записей в блоге: 1
22.01.2019, 13:07 19
Цитата Сообщение от kalabuni Посмотреть сообщение
при этом неудачно!
kalabuni, любопытно узнать, почему Вы так считаете? Для более ранних лет, вроде бы, тоже правильно, насколько я проверял на примерах...
Цитата Сообщение от kalabuni Посмотреть сообщение
ТС желала узнать високосность ЛЮБОГО введённого ею года
Ну, да. Просто тогда вместо
Цитата Сообщение от Htext Посмотреть сообщение
29 : 28
будет что-то вроде
"високосный":"невисокосный "
Ибо признак високосности как раз и состоит в том, что в феврале прибавляется 1 дополнительный день.

Добавлено через 1 минуту
Хотя, да, опять-таки, високосность будет проверяться именно для текущего года.

Добавлено через 5 минут
Цитата Сообщение от klopp Посмотреть сообщение
const isLeapYear = year => !(year % 100) ? !(year % 400) : !(year % 4);
Я видел эту функцию в интернете, но она показалась мне излишне громоздкой. Может, давайте обсудим, по ссылке kalabuni:
"Год високосный, если он делится на четыре без остатка, но если он делится на 100 без остатка, это не високосный год. Однако, если он делится без остатка на 400, это високосный год. Таким образом, 2000 г. является особым високосным годом, который бывает лишь раз в 400 лет. "
Предложенный мной код как раз определяет 2000 год, как високосный. А что, 1900 год - не является високосным, что ли?

Добавлено через 7 минут
Цитата Сообщение от kalabuni Посмотреть сообщение
var f29 = new Date (year, 1, 29)
Здесь используется "прошитый" в объекте Date алгоритм определения високосного года.
0
525 / 429 / 175
Регистрация: 14.10.2017
Сообщений: 1,196
23.01.2019, 01:22 20
Цитата Сообщение от Htext Посмотреть сообщение
Я видел эту функцию в интернете
может где-то и есть, задача-то избитая, но это я сам решил, как раз по "алгоритму от Майкрософта", ссылку на который привел kalabuni.
Цитата Сообщение от Htext Посмотреть сообщение
А что, 1900 год - не является високосным, что ли?
выходит что нет. Из круглых годов високосные были 1600, 2000 и будет 2400.

Цитата Сообщение от Htext Посмотреть сообщение
она показалась мне излишне громоздкой
первый раз вижу чтобы функцию в одну короткую строку называли "громоздкой", да еще и "излишне")))
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2019, 01:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Определить, является ли год високосным
Доброго времени суток всем! Помогите, пожалуйста, сделать такую задачку: Определите по номеру года,...

Определить, является ли год високосным
Требуется определить, является ли данный год високосным. (Напомним, что год является високосным,...

Определить является ли год високосным
Пользователь вводит год, определить является ли он високосным (год является високосным в двух...

Определить, является ли год високосным
подскажите как делать напишите программу, которая выполяет следующие действия: 1) с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.