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

  • 8
  • Недоступна
На планете Земля год длится 365 или 366 суток. Количество дней высчитывается по определенной формуле: високосным годом (366 суток) является год, который делится без остатка на 4 за исключением годов, которые кратны 100 и не кратны 400. Напишем программу, в которой выясним, високосный или обычный год ввёл пользователь с клавиатуры.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (463)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
NacWay
Уровень 19, Ural
5 февраля, 06:50
public class Solution {
    public static void main(String[] args) throws Exception {
        //напишите тут ваш код
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String syer = reader.readLine();
        int yer = Integer.parseInt(syer);
        diny(yer);
    }
    public  static void diny (int years) {

        if ((years % 4 == 0) && (years % 100 != 0) || (years % 400 == 0)) {
            System.out.println("количество дней в году: 366");
        } else {
            System.out.println("количество дней в году: 365");
        }
    }
}
Sara Kerrigan
Уровень 7, Москва
13 января, 15:05
Мудрость чувака с хабра. + мудрость чувака из комментов. = решение задачи в две строки. "Иными словами, если год делится на 4 без остатка, но делится на 100 только с остатком, то он високосный, иначе — невисокосный, кроме случая, если он делится без остатка на 400 — тогда он всё равно високосный." ---------------------------------------------------------------------------------- "&& - это "И" || - а это "ИЛИ" (я запомнил что || как тест на беременность, когда ты думаешь мальчик или девочка)) != - это не равно чему-то == - это равно (ну это вы наверно знали)"
thisMOVIE
Уровень 4
12 декабря 2021, 14:07
Не засчитало, условие выполнено. Чуть куда отойдешь. Делай по новой. Крайне недоволен этим. https://prnt.sc/22rnt1n
thisMOVIE
Уровень 4
12 декабря 2021, 14:05
Не засчитало, условие выполнено
Сергей Никитин
Уровень 16, Казань, Россия
18 октября 2021, 20:40
Весь мозг сломал, пока понял, что в условии написано! "2) в оставшихся годах после этого" В каких оставшихся годах?? Решение простое, как 5 копеек, а условие капец мутное!
Pavel Mordovin
Уровень 8, Санкт-Петербург, Россия
17 марта, 10:38
+ корявое условие, полагаю на работе тоже могут задачи ставить хрен что разберёшь
Alex Dexterev
Уровень 8
30 сентября 2021, 14:48
проблема с тем, что тут с изначальной подачей условий напартачили, чтоб вы моск себе поломали, нашел адекватные параметры условий вычисления высокостного года на wikihow.
Yodzimura
Уровень 4, Москва, Россия
9 октября 2021, 21:19
+100500, условие не совсем корректно описано.
Иван
Уровень 14, Новосибирск
3 августа 2021, 18:58
Проблема была с тем, что могут быть исключения, которые на все делятся и на 400 и на 100 и на 4 с остатком (2002), провозился кучу времени с этим.
Denis Vakulenko
Уровень 5, Новосибирск, Россия
16 июля 2021, 03:28
if (n % 400 == 0 || n % 4 == 0) System.out.println("Високостный год"); else System.out.println("Не Високостный год");очему такое решение не правильное?в идеи решаю все получается
Иван
Уровень 14, Новосибирск
3 августа 2021, 18:45
Если вдруг не нашел проблему 2100%4 без остатка, а он является не високосным
Щербаков Артем
Уровень 5
6 августа 2021, 06:59
да, но ведь 2100%400 с остатком ?!
Иван
Уровень 14, Новосибирск
12 августа 2021, 13:42
ну все правильно "если год делится без остатка на 400 это високосный год;", подтверждает что не является високосным
Semen QA Engineer в Vitalerter
9 октября 2021, 10:45
Потому что есть, например, 2200 год. Делится без остатка и на 400, и на 4, но он не високосный, потому что в то же время делится без остатка и на 100.
Maksym QA Automation Engineer
29 мая 2021, 06:14
можно ничего не делить и не считать (велосипед ведь давно изобретен). Советую использовать java.time.LocalDate ( LocalDate myDate = LocalDate.of(scan.nextInt(), 1, 1);) и его метод isLeapYear(), тогда получается решение в 3 строчки.
Дмитрий
Уровень 26, Нижний Новгород
1 июня 2021, 14:28
Смысл задач не в результате решения задач, смысл задач в закрепление материала и поиска пробела в своих знаниях, вы своим комментарием дополнили мои знания и дали стимул почитать про класс который вы указали. В данной же задаче, я считаю, лучше использовать многоступенчатую конструкцию if-else-if, которая ранее в лекции объяснялась и почитать про операторы (ссылка из комментария ниже : https://javarush.ru/groups/posts/operatory-java-logicheskie-arifmeticheskie-pobitovye). Столкнулся с одной проблемой при решении: когда задаем условие для оператора if, то не забываем, что условия должны быть типа boolean и boolean и что есть большая разница в написании a % b = 0 и a % b == 0.
Дима
Уровень 16, Новая Каховка, Украина
20 мая 2021, 18:52
Ребят, прежде чем садиться за решение задачки, вы должны знать про оператор "%". вот тут можно про него почитать https://javarush.ru/groups/posts/operatory-java-logicheskie-arifmeticheskie-pobitovye Так же надо знать что && - это "И" || - а это "ИЛИ" (я запомнил что || как тест на беременность, когда ты думаешь мальчик или девочка)) != - это не равно чему-то == - это равно (ну это вы наверно знали) Всё, с этим уже можно творить магию и ломать мозг с этой головоломкой)) Добавляйте если чё пропустил))