Показать цифровые часы
(Я вижу, что есть много проблем с часами, я пытался прочитать их все, я уверен, что это уникально)
Написать код , который постоянно обновляет цифровые часы отображаются в формате , h:m:s
где h
, m
и s
может занять 1 или 2 символов каждая. В простых терминах, как выразился @BlueEyedBeast, я хочу, чтобы он заменил показанное время.
- Новые строки не допускаются
- Трейлинг разрешены
- Другие завершающие символы не допускаются
- Нельзя пропускать секунд (57 -> 59 не допускается)
- Допускаются числа, начинающиеся с «0», если они занимают не более 2 символов
- Код не должен принимать ввод
- Если ваш язык не может получить текущее время без ввода, вы можете использовать для ввода до 8 байтов стандартно разрешенным способом
- Выход должен быть в стандартный вывод
- Это Codegolf, поэтому выигрывает самый короткий ответ!
пример
Я работаю над языком с именем *> <> (морская звезда), потому что такие программы невозможны в> <> (просто подождите, пока не будет введен файл / ввод). Вот рабочая программа с цифровыми часами (без присмотра). Эта программа написана на *> <> :
s":"m":"hnonon" "ooo88888888888ooooooooooo1S
Примечание. В этом случае все идентично> <>, за исключением: s = секунда, m = минута, h = час, S = сон (100 мс * x)
Это выводит:
14:44:31
Обновление каждые 100 мс, пока не прекращено.
Запрещенные примеры
Следующее не допускается:
1:
14:44:3114:44:32
2:
14:44:31 14:44:32
3:
14:44:31
14:44:32
Время должно оставаться в первой строке, в которой оно было выведено без видимых завершающих символов. Очистка терминала, тем не менее, будет разрешена, поскольку в ней по-прежнему не будет завершающих символов.
Ответы:
Пайк, 6 байт
Попробуй это здесь!
Я думаю, что это действительно. Замените символ пробела на возврат каретки для правильного вывода (не работает онлайн)
источник
HTML + JS (ES6), 8 + 60 = 68 байт
Проверено в Chrome.
-1 байт (@ETHProductions): используйте формат французского времени вместо
.toTimeString().slice(0,8)
HTML + JS (ES6), 8 + 62 = 70 байт
Это будет работать в FireFox.
-3 байта (@ETHProductions): использовать французский формат времени вместо
.toTimeString().slice(0,8)
источник
new Date().toLocaleTimeString`fr`
(1 байт в Chrome с одним...TimeString('fr')
)Python 2, 50 байт
(Python 2.1+ для
ctime
без аргументов)time.ctime()
возвращает отформатированную строку, из которой можно нарезать чч: мм: сс[11:19]
(она остается в том же месте независимо от даты и времени).print
Возврат каретки'\r'
перед текстом и превращение текста в первый элемент кортежа с,
эффективным подавлением неявного завершения'\n'
и перезаписывают ранее записанный вывод.while 1
петли навсегда.источник
,
в конце, чтобы подавить перевод строки, иначе в Python 2.7.12 я получаю переводы строки.Mathematica,
48413728 байтВыход будет
TimeObject
обновляться непрерывно.Выглядит так:
Альтернативные версии
48 байтов:
53 байта:
источник
Dynamic@{DateString@TimeObject[], Clock[]}[[1]]
Pause
.Dynamic@{Now,Clock[]}[[1]]
имеет размер 26 байт и показывает объект datetime.Dynamic@{DateString@"Time",Clock[]}[[1]]
составляет 40 байтов и выводит только чч: мм: ссЯ вижу, что требование для входа без пользовательского интерфейса для остановки программы было удалено. Итак, теперь мы можем сделать:
Bash + coreutils, 28
yes
непрерывно выводит строку "сейчас", один раз за строку, в канал.date -f-
reads интерпретирует каждое «сейчас» как текущее время, а затем выводит в требуемом формате. Строка формата включает управляющую последовательность ANSI для очистки экрана.date
делает выход новой строки после даты - я не уверен , если это дисквалифицирует, так как экран очищается каждый раз , когда в любом случае.Если это дисквалифицирует, тогда мы можем использовать
tr
вместо:Bash + coreutils, 31
Предыдущие ответы:
Баш + Х, 32
К сожалению, это может обновляться только каждую секунду. Если это дисквалифицирует, то мы можем сделать это вместо этого:
Баш + coreutils, 43
источник
date +$'\e[2J'%T;$0
date +$'\e[2J'%T;exec $0
для 24 байтов ...QBIC , 6 байтов
Постоянно очищает экран и печатает системное время в формате
22:03:41
.источник
Clojure,
150136141 байтV3: 141 байт :(
+5 байт, чтобы исправить ошибку. Поскольку время не заполнено нулями, часы могут «уменьшаться» и расширяться при изменении времени. Когда он сжался, он «размазался», потому что последняя цифра больше не очищалась. Исправлено, добавив несколько пробелов в конце, чтобы гарантировать, что все будет перезаписано.
V2: 136 байт
-14 байт, переключившись на использование
SimpleDateFormat
для форматирования даты. Все еще огромный.V1: 150 байт
Я понял, что, вероятно, использую худший из возможных способов получить дату. Определенно, здесь есть место для улучшения.
Ungolfed:
источник
Баш + часы, 19 байт
watch не является частью coreutils , но доступен практически из любого дистрибутива Linux.
Golfed
Попробуйте онлайн!
источник
WinDbg, 73 байта
Он постоянно обновляет строку с текущим временем, пока пользователь не нажмет Ctrl + Break.
Как это устроено:
Пример вывода (ну, вы поняли):
источник
PHP, 28 байт
date
Функция печатает все в буквальном смысле , что это не распространяется признать.\r
возврат каретки, устанавливает курсор на первый столбец.Беги с
-r
.источник
MATL , 11 байт
Бесконечный цикл, который очищает экран и печатает время в указанном формате.
Вы можете попробовать это в MATL Online! , Этот компилятор является экспериментальным; если это не работает, обновите страницу и снова нажмите «Выполнить».
источник
C #, 82 байта
Анонимный метод, который постоянно перезаписывает 8 символов новым выводом. Может быть уменьшен на 1 байт при изменении, чтобы принять фиктивный параметр (
z=>...
).Полная программа:
источник
System
? Некоторые люди делают это, а некоторые нет: /C #, 65 байт
Работает путем перезаписи одной и той же строки в бесконечном цикле
источник
SmileBASIC 3.3.2, 38 байт
UTF-16 отстой :(
В любом случае, это многократно печатает местное время в формате ЧЧ: ММ: СС с пробелом после него, без новой строки после. Хотя он не обновляется каждую секунду, он просто многократно печатает вечно.
источник
@L?TIME$
и добавление строки после (всего 3 строки), которая гласит,LOCATE 0, 0
помогает ли это (SmileBASIC поддерживает возврат каретки?).len(""" YOUR CODE HERE """)
, а затем просто сделать * 2 для UTF-16.C
1341168980767573 байтаисточник
time.h
. Это удаляет тип time_t, поэтому вам нужно вместо этого сделать n int. Это можно сделать, объявив его вне main (напримерn;main...
), что устраняет необходимость вint
. Вы также можете избавиться отchar
с таким же трюком:b[9];main...
. Теперь они оба типа int, но они достаточно гибкие.strftime...
и ...b[9]
и просто напечатал это:printf("\r%d:%d:%d",(n/3600)%60-29,(n/60)%60,n%60);
я не уверен, нужны ли эти парены или нет. Также вы можете убрать набор{}
, поставив запятые между вашими утверждениями, так что этоfor(;;)a,b,c;
(n/60)%60
, шутки в сторону?n
параметромmain
, скажем,main(n)
вместоn;main()
Powershell, 39 байт
Потому что я не люблю использовать cls в Powershell. Из поста briantist @ /codegolf//a/102450/63383
источник
Паскаль, 61 байт
В бесплатном паскале есть приятные временные процедуры в модуле SysUtils. Ungolfed:
источник
C 65 (пред 64) байтов
Гарантированно работать на Linux-машине. :)
@ Марко Спасибо!
источник
Vim, 26 байт
Это создает рекурсивный макрос (например, вечный цикл), который удаляет весь текст в текущей строке и заменяет его текущим временем.
источник
Pyth - 28 байт
Вроде долго, потому что у пита нет времени.
источник
Groovy, 45 символов
источник
Желе , 8 байт
Попробуйте онлайн!
Возврат каретки не работает в Интернете, и я не могу заставить переводчика работать, так что он вроде не проверен, но он работает, как и ожидалось, когда я использую печатные символы вместо CR.
источник
ForceLang, 123 байта
datetime.toTimeString
поддерживается в эталонной реализации JavaDateFormat.getTimeInstance()
, которая зависит от локали, так что вы можете установить системную локаль по умолчанию на ту, которая использует 24-часовое время.источник
PowerShell,
30282420 байтИзменив регион моего компьютера на Германию, основываясь на комментариях разнагула , я сэкономил 4 байта. :)
Предыдущая версия, которая работает во всех регионах.
источник
tcl, 69 байт
Попробуй это здесь!
источник
Пакетный, 36 байт
Где
␈
представляет символ ASCII BS (код 8).источник
Ракетка, 71 байт
Где это на
↵
самом деле CR (гекс0d
). Шестнадцатеричный дамп программы для дальнейшего уточнения (байт уведомления в шестнадцатеричной позиции4d
):Использует SRFI / 19, включенный в дистрибутив Racket.
(current-date)
получает текущую местную дату и время.date->string
Формат~3
является ISO-8601 часы-минуты-второй формат.(let l () ... (l))
в идиоматическом бесконечном цикле.(require srfi/19)
загружаетsrfi/19
модуль.источник
C 156 байт
источник
TI-Basic, 40 байт
(В TI-BASIC многие символы - это 2-байтовые токены, а двоеточия в начале строки - 0 дополнительных байтов).
источник
R, 41 байт
Имеет один завершающий пробел (поскольку
cat
разделитель по умолчанию является пробелом).Из-за частоты обновления графического интерфейса R запуск этого в графическом интерфейсе иногда пропускает несколько секунд, но если вы сохраните его в файл и запустите в командной строке, он будет отображаться правильно каждую секунду.
Будет работать вечно, пока пользователь не прервет.
источник