"В Лондоне полночь", — говорит дядюшка Бэн. Заставьте его говорить программно. Разберись, что делает программа и реализуйте логику метода printTime так, чтобы каждую секунду выдавалось время начиная с установленного в конструкторе.
Big Ben clock
- 9
Недоступна
Комментарии (244)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #2931973
31 мая, 19:37
А зачем используется второй "Thread.sleep(1000);" с параметром 1000 в мэйне:
Первый "Thread.sleep(4000);" с параметром 4000 понятно зачем - остановить главную нить, чтобы дочерняя нить успела поработать, до смены переменной "isStopped". Это собственно описал Luerox ниже. 0
Kamil zaripov
24 мая, 16:50
1. Программа работает в течении 4 секунд
2. Необходимо сделать корректный вывод часов, минут и секунд
3. Усыплять программу на 1 секунду после вывода времени
0
xxxx
29 мая, 10:30
усыплять надо ДО вывода времени
0
Sun
17 января, 10:02
Моё математическое решение без if. Но решение с использованием LocalTime из комментов больше понравилось )
+3
Liubov
16 декабря 2022, 12:23
Кмк, лучше доверить подсчет часов уже имеющемуся специалисту по счету часов, а не изобретать заново. Завтра на Марс переедем, там длина суток другая, и что, переписывать все?)
Thread.sleep(1000);
LocalDateTime a = LocalDateTime.of(1, 1, 1, hours, minutes, seconds);
a = a.plusSeconds(1);
hours = a.getHour();
minutes = a.getMinute();
seconds = a.getSecond();
+5
SVCH
27 декабря 2022, 10:44
Еще лучше использовать LocalTime, нам же дата не нужна:
+5
Anon
5 февраля, 16:47
Ну... Если уж душнить, то по-полной!
Во-первых, использовать в данной задаче LocalDateTime - избыточно. Достаточно LocalTime.
Во-вторых, ваше же решение на Марсе как раз-таки и будет нерабочим из-за разной длительности Земных суток и Марсианских солов. Ибо оф. документация нам говорит, что максимальные значения, с которыми может работать класс - это 23 для часов, 59 для минут и 59 для секунд. Придётся переписывать всё.
+2
xxxx
29 мая, 10:46
Если использовать LocalTime с прибавкой секунды, как у SVCH, то придется менять конструктор - в нем проставлены int-ы, необходимо будет прописывать, чтобы в конструтор вместо наших int проставлялись данные из LocalTime.
0
Leon JlEOH
11 ноября 2022, 05:05
мне цифровые часы как в решении не нравятся хотя там откровенно логика программиста)
мне механика приятнее ... будто стрелочка за стрелочку цепляет
+11
Lafaed
28 декабря 2022, 13:08
Я сделал похожее но немножко не похожее :
//add your code here - добавь код тут
Thread.sleep(1000);
if (++seconds == 60) {
seconds = 0;
if (++minutes == 60) {
minutes = 0;
hours = ++hours == 24 ? 0 : hours;
}
}
0
Lafaed
28 декабря 2022, 13:15
и подскажите как вы красивый код вставляете "картинкой" а не просто текст как у меня ?
0
Leon JlEOH
28 декабря 2022, 15:36

+3
marych
31 декабря 2022, 07:25
Спасибо
0
Tomhetted
7 ноября 2022, 14:13
Хорошая задачка, хоть и не сложная
0
Андрей Столяров
5 ноября 2022, 14:37
Очень странно, сначала решил через проверку секунду, минут и часов на макс значение, все в консоли работало, но валидатор не принимал. Прочел в условии "Секунд, после инкремента времени, не может быть больше 59. Должно увеличиться количество минут." Подумал, логично что не принимает.
Пошел другим путем:
Потом глянул готовое решение и был обескуражен 0
Даниил
31 октября 2022, 17:53
Решил схитрить и сделать так
Вроде бы выводит в консоль нужный результат, но условие не выполняется в полной мере и логика будет нарушена при достижении минутами 60 и далее 0
Lafaed
28 декабря 2022, 13:13
предположим время 21:59:59
секунда++
ииии получаем не 22:00:00 а 00:00:00
0
Dmitry Aytiev
11 октября 2022, 12:36
Задачу решил, но неоч разобрался почему часы не идут дальше 0:0:1. Подскажите где в программе происходит остановка.
0
Luerox
25 октября 2022, 07:44
Остановка в методе main + в методе run объекта Clock. Сначала основная нить (main) засыпает на 4 секунды, как раз в это время тикают часы. Потом основная нить «просыпается» и меняет значение isStopped. Соответственно, следующий цикл в методе run дочерней нити не запускается, т.к. он зависит от этого значения, часы дальше не считают.
+2
Александр Сергеев
29 сентября 2022, 11:47
Решил один в один как в авторском решении, только сперва "усыплял", а потом проверял. Валик принял, разницы в логике никакой нет.
+1