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

  • 8
  • Недоступна
На планете Земля год длится 365 или 366 суток. Количество дней высчитывается по определенной формуле: високосным годом (366 суток) является год, который делится без остатка на 4 за исключением годов, которые кратны 100 и не кратны 400. Напишем программу, в которой выясним, високосный или обычный год ввёл пользователь с клавиатуры.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (466)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Макс Дудин
Уровень 41
16 октября, 19:29
Прикольно, что я попал сюда в поисках ответа на одну из последних задач 40-го уровня, что-то в этом же духе (кусочек easy задачки): // нужно импортировать для начала сл классы import java.time.*; import java.time.format.DateTimeFormatter; // ввод с клавиатуры опускаю public static boolean isLeap(String year){ Year year1 = Year.parse(year, DateTimeFormatter.ofPattern("y")); return year1.isLeap(); } из описания Этот метод применяет текущие правила для високосных лет по всей временной шкале. Как правило, год является високосным, если он без остатка делится на четыре. Однако годы, кратные 100, не являются високосными, за исключением лет, кратных 400, которые являются високосными. //интересно пройдёт ли валидацию 🤣 p.s. Хотел себе же здесь в 2020-й, написать сколько "говна" произойдёт за 2,5 года. Не получилось😒😟
Семён
Уровень 10
11 июля, 11:28
У меня есть только один вопрос. Для чего тут вообще проверки деленияя на 400 и 100????? Если просто можно проверить деления на 4 сразу? То есть : if(year % 4 == 0) 1. Если подходит условию значит год високосный , а если нет то обычный. В чём суть делать проверки деления на 400 и 100?? Они просто не нужны
Dmitry Student в Home
26 ноября, 18:02
год делится на 4 без остатка не является единственным условием для определения високосного года. В условии задачи написано же, какой год високосный, а какой нет.
NacWay
Уровень 25
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
Не засчитало, условие выполнено
Сергей Никитин
Уровень 17
18 октября 2021, 20:40
Весь мозг сломал, пока понял, что в условии написано! "2) в оставшихся годах после этого" В каких оставшихся годах?? Решение простое, как 5 копеек, а условие капец мутное!
Pavel Mordovin
Уровень 8
17 марта, 10:38
+ корявое условие, полагаю на работе тоже могут задачи ставить хрен что разберёшь
Alex Dexterev
Уровень 41
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.