Количество дней в году

  • 3
  • Недоступна
На планете Земля год длится 365 или 366 суток. Количество дней высчитывается по определенной формуле: високосным годом (366 суток) является год, который делится без остатка на 4 за исключением годов, которые кратны 100 и не кратны 400. Напишем программу, в которой выясним, високосный или обычный год ввёл пользователь с клавиатуры.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (174)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
ILearnedJava4 уровень
14 апреля, 19:14
Удобнее сначала проверить эти условия
Так, годы 1700, 1800 и 1900 не являются високосными, так как они кратны 100 и не кратны 400.
Годы 1600 и 2000 - високосные, так как они кратны 100 и кратны 400.
А потом уже все остальные.
Ильяс35 уровень, Москва
9 апреля, 20:07
System.out.println("количество дней в году: " + (i%4==0  ? i%100==0 ? i%400==0 ? "366" : "365" : "366" : "365") );
//
Nazim8 уровень, Москва
29 марта, 12:33
ребята решайте через ту программу которую прошли, на данном уровне через else , if вСЕМ УДАЧИ
Larisa Gandel8 уровень, Москва
28 марта, 17:34
Явно ошибка в подсказке. 400 и 4 надо поменять местами. Подсказка (с ошибкой): В високосном году - 366 дней, тогда как в обычном - 365. 1) если год делится без остатка на 400 это високосный год; 2) в оставшихся годах после этого, если год делится без остатка на 100, то это обычный год; 3) в оставшихся годах после этого, если год делится без остатка на 4, то это високосный год; 4) все оставшиеся года невисокосные. Подсказка (исправленная): В високосном году - 366 дней, тогда как в обычном - 365. 1) если год делится без остатка на 4 это високосный год; 2) в оставшихся годах после этого, если год делится без остатка на 100, то это обычный год; 3) в оставшихся годах после этого, если год делится без остатка на 400, то это високосный год; 4) все оставшиеся года невисокосные.
Павел14 уровень, Санкт-Петербург
8 марта, 20:22
Добрый вечер! вот код который сам написал, можно сделать очень коротко: if ((god % 400 == 0) || (god % 4 == 0) && (god % 100 != 0)) { // god - число вводимое с клавы god++; <високосный> else <високосый>
Alexey Hehnev8 уровень, Санкт-Петербург
8 марта, 12:33
Если год делится на 4 и не делится на 100 или делится на 400... То...
Игорь16 уровень, Москва
15 марта, 13:55
такого не может быть, если он делится на 400, то и на 100 тоже.
Илья 8 уровень, Москва
5 марта, 19:31
использовал в ветвлении сравнение результата деления номера года и знаменателя, через double и int. Но сложный набор условий выходит.
Sam Fisher4 уровень, Москва
25 февраля, 10:14
Перефразирую условие, возможно кому-то поможет: 1) Если число делится на 400 без остатка то это високосный год 2) Если делится без остатка на 400 и на 100 то это високосный год 3) Если не делится без остатка на 400 и на 100, но делится без остатка на 4 то это високосный год 4) Если делится без остатка на 100 но не делится без остатка на 400 то это обычный год Если ошибся поправьте.
Vladimir Kashin22 уровень, Москва
2 марта, 10:34
Всё верно, спасибо!
mimimiriam5 уровень, Санкт-Петербург
20 февраля, 17:50
выполняйте строго по подсказке в условии, через if, else if, else if, else и тогда у вас все получится. удачи p/s. не забывайте, что (x%400) делит левое число на правое и возвращает остаток
Kovis9 уровень, Санкт-Петербург
18 февраля, 09:33
для расширения кругозора прочитал еще дополнительно и про "0" год. для решения задачи это не имеет значения, но нулевого года в календаре нет, но есть в ISO8601 https://ru.wikipedia.org/wiki/0_%D0%B3%D0%BE%D0%B4
Vladimir Kashin22 уровень, Москва
2 марта, 09:43
Интересный факт!
Алексей4 уровень
15 апреля, 17:21
Обработать исключение?))