Вызов
Вы должны выводить текущее время непрерывно (до тех пор, пока оно не будет отменено прерыванием), один раз в секунду, любым из следующих способов:
- Он должен быть в 24-часовом формате или в формате AM / PM.
- Если это первое, оно должно быть разделено двоеточиями (т.е. 15:47:36).
- Если это последний, он должен быть разделен двоеточиями и иметь следующий AM / PM (т.е. 3:47:36 PM)
- Это можно вытащить из интернета.
- Это может быть системное время.
- Он должен выводить любую естественно доступную форму вывода, которая поддерживает выбранный вами текст.
- Вывод может содержать дополнительную информацию помимо времени, но вы должны гарантировать один и только один вывод времени в секунду.
- Непрерывный выходной сигнал должен быть разнесен на секунду - если вы решите подождать, пока второй изменится между выходными сигналами, это нормально. Если вы подождите секунду между каждым выводом, это вполне приемлемо, несмотря на возможную потерю точности.
Поскольку это каталог, языки, созданные после этого конкурса, могут конкурировать. Обратите внимание, что должен быть переводчик, чтобы представление можно было проверить. Разрешается (и даже поощряется) самостоятельно писать этот переводчик для ранее не реализованного языка. Кроме этого, все стандартные правила код-гольфа должны соблюдаться. Материалы на большинстве языков будут оцениваться в байтах в соответствующей существующей кодировке (обычно UTF-8).
Каталог
Фрагмент стека в нижней части этого поста создает каталог из ответов а) в виде списка кратчайшего решения для каждого языка и б) в качестве общей таблицы лидеров.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
## Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Если вы хотите включить в заголовок несколько чисел (например, потому что ваш результат равен сумме двух файлов или вы хотите перечислить штрафы за флаг интерпретатора отдельно), убедитесь, что фактический результат является последним числом в заголовке:
## Perl, 43 + 2 (-p flag) = 45 bytes
Вы также можете сделать имя языка ссылкой, которая будет отображаться во фрагменте кода:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
sleep 1
основанные на правиле 5 нарушения ответа: вы должны гарантировать один и только один вывод времени в секунду. !!Ответы:
Minecraft 1.8.7, 7 + 8 = 15 байт (байт + блоки)
Включен только один командный блок:
Вывод идет на клиентскую консоль следующим образом:
Как часть нормального выхода.
Это система:
xp
дает определенное количество опыта указанному игроку с синтаксисомxp <amount> <player>
. Я почти уверен, что это самая маленькая команда с единственным выходом, которую я могу получить сейчас.источник
JavaScript, 32 байта
Использует тот факт, что setInterval оценивает код. Это не рекомендуется, но когда это было проблемой в коде гольф?
Date()
возвращает текущее время и дату в таком формате (может отличаться в зависимости от системы).источник
setInterval(alert,1e3,Date())
работать вместо этого?Date()
будет оцениваться только один раз при создании интервалаsh (+ watch), 11 байт
Автор сценария:
(без завершающей строки)
Выход:
Количество пробелов зависит от ширины терминала.
Протестировано на Debian8 и NetBSD7.
источник
watch
- это coreutil. Настоящий язык - bash / sh.Bash (distribution)
, не такwatch
ли? @ Doorknob-p
переключатель, чтобы не нарушать правило, вы должны гарантировать один и только один вывод времени в секунду. !!Snap ,
876 блоков(Да, я изменил его в MS Paint, потому что мне было лень делать еще один снимок экрана. Ну и что? По крайней мере, его можно прочитать.)
Щелкните сценарий, чтобы запустить
24-часовые часы.
источник
9:21:08
?Python 2, 47 байт
Нет онлайн-ссылки, потому что время ожидания истекает (huehuehue) перед печатью.
Спасибо @xsot за
while[sleep(1)]
хитрость иctime
хитрость.Распечатывает текущую дату и время следующим образом:
Fri Nov 27 21:23:02 2015
источник
sleep 1
основанное на нарушении правило 5 ответа: вы должны гарантировать один и только один вывод времени в секунду.sleep 1
заставляет текущий поток спать в течение ровно одной секунды. Это соответствует правилам.sleep(1)
как в своем решении AppleScript, так и в своем решении Vitsy + bash , это явно приемлемо.Perl, командная строка, 24 байта
Это должно быть запущено из командной строки, как
perl -E'sleep(say)while$_=gmtime'
(в Windows вместо двойных кавычек). Дата будет выведена вместе со временем, которое , по-видимому, разрешено .Perl, 25 байт
В скалярном контексте
gmtime
вернет строку, аналогичнуюSat Nov 28 10:23:05 2015
. Результат отprint
, всегда 1, используется в качестве параметра дляsleep
.do$0
используется для повторного выполнения сценария после окончания таймера.источник
{sleep say~~gmtime;redo}
.sleep 1
основанное на нарушении правило 5 ответа: вы должны гарантировать один и только один вывод времени в секунду .Javascript ES6, 43 39 байт
По крайней мере, работает с моими текущими настройками времени (которые не менялись в течение некоторого времени).
Конор О'Брайен спас 4 байта.
источник
.toTimeString()
в Chrome и FF.new Date()
наDate()
Arcyóu , 27 байт
Мне пришлось соединить две новые функции для этого вызова,
zz
иst
.pn
Точно так же, как Лиспprogn
.zz
: Прямая ссылка на Pythontime.sleep
.st
: Прямая ссылка на Pythontime.strftime
.Обычно кавычки необходимы для строки формата, но поскольку пробелов нет, они анализируются как символ. Интерпретатор оценивает неопределенные символы как самих себя, поэтому мы получаем строку.
источник
Баш,
5131242120 байтСпасибо @quartata за некоторые очень полезные комментарии. Спасибо @Dennis за разъяснения и за обрезание еще большего количества байтов. Спасибо @VoteToClose за разъяснение правил (которые, по-видимому, я плохо читаю) за дальнейшее сокращение байтов.
date
отображает полную дату с 24-часовыми часами.sleep 1
спит на секунду.exec $0
зацикливает сценарий бесконечно.источник
true
наsleep 1
так какsleep
возвращает а1
.date +%T;sleep 1;exec $0
немного короче. @quartata Nitpicking:sleep
имеет код выхода ноль, поэтомуwhile
продолжается.date
этого вам не нужно пространство , так что это всего 20 байтов.Befunge 98, 53 байта
Примечания:
.
команда печатает неявный пробел в конце.d
на первой строкеa
источник
"EMIT"4(
В начале программы говорит переводчику , чтобы загрузитьTIME
отпечатки пальцев, что позволяетH
,M
иS
инструкции. (Нет, это не испускает номер 4).MIRC 7,49
2016 байтисточник
say
вам понадобится подключиться к серверу, а затем присоединиться к каналу. в противном случае вы бы использовалиecho
вместоsay
. MIRC имеет свой собственный язык сценариев mSL (язык сценариев mIRC)AutoHotkey, 50 байт
Примечания:
источник
x
.C (в Linux x64),
179177175168159 байтUngolfed:
Только на Linux x64 и, вероятно, только на ее функциях (x32 может работать, но другие платформы, вероятно, не будут).
Основным отличием этой программы от других опубликованных программ на C является использование исключительных вызовов linux-функций, которые, хотя и являются ужасной практикой для реального программного обеспечения, экономят немало байтов ... если игнорировать все предупреждения компилятора.
источник
#include
и<...>
. Кроме того, вы можете использовать1e6
вместо1000000
?#include
с. Это не похоже на то, что usleep () принимает 1e6, хотя - основываясь на том, как быстро он начинает выплевывать метки времени, он просто интерпретирует его как 1.%T
в качестве спецификации формата вstrftime
.Джольф ,
1487 байтВычеркнуто 14 является ударом 1? Нау, это никогда не зацепит;)
Попробуй это здесь! Нажмите Run, не нажимайте на что-либо еще ^ _ ^ страница очень ... взрывоопасна. Да. Исправлена система вывода с обновлением.
(Я добавил некоторые константы, и
~1
к~4
являются степенями10
.)объяснение
источник
Дьялог АПЛ ,
27 1816 байтПопробуйте онлайн!
⎕TS
YMD hmst':',¨
prepend: каждому⋄
новому оператору⎕DL 1
подождите секунду и верните фактическое время ожидания; 1,0 секунды≢
подсчитывают фактическое время ожидания , давая 1→
перейти к строке (1 = эта строка)источник
Perl 6 , 29 байт
Право способ сделать это:
Версия для гольфа
Поскольку вывод не должен быть ограничен только временем, я могу сделать его немного короче.
источник
R, 38 байт
Это выводит текущее время в следующем формате:
источник
Powershell, 19 байт
источник
for(){date;sleep 1}
PHP, 37 байт
Выводит отформатированное время сервера и настраивает страницу на обновление каждую секунду.
Конечно, это зависит от вашего интернет-соединения и от того, насколько быстро ваш сервер отвечает :)
демонстрация
источник
Warning: Cannot modify header information - headers already sent
<?=header('refresh:1').date('G:i:s');
должен работать с любой настройкой выходной буферизации.VBA, 69 байт
Получить время просто,
now()
выводить только 1 секунду ... НАМНОГО более многословно.Это «правильный» способ ожидания 1 секунды в VBA. 78 байт
Или, если вы хотите сократить некоторые углы, и достаточно быть правым только в 86% случаев, то достаточно 63 байтов,
добавив один SigFig, вы получите точность 95%, а третья - 99,36%.
Если вы хотите, чтобы вышеуказанный метод до 100%, то вам нужно 69 байт
(1/86400)
Все эти методы могут натолкнуться на високосную секунду, потому что они не ждут 1 секунду, но ждут до 1 секунды. В полночь, когда часы возвращаются на час назад, эти часы останавливаются на 1 час, а затем начинают с того места, где они остановились.
VBA допускает использование Sleep Method, но ваш байтер находится в руинах. 97 байт
источник
JavaScript,
473835 байтобъяснение
Постоянно проверяет, изменилось ли время, затем
alert
s, если оно изменилось .источник
+""
, как безnew
,Date()
возвращает строку.new
. Спасибо, что поймали это!AppleScript,
5135 байтДовольно чертовски очевидно. Печатает текущую дату, которая содержит время, задерживает секунду, затем продолжается.
источник
𝔼𝕊𝕄𝕚𝕟, 13 символов / 25 байтов
Try it here(Firefox only).
Это на удивление читабельно.
источник
Дьялог АПЛ, 36 байт
Не очень короткое время
Это выводит 24-часовое время, то есть:
Объяснение:
{
...}1
: определить функцию и вызвать ее (аргумент игнорируется, но нам нужна функция для ее рекурсивного вызова)⎕TS
: системная функция, которая возвращает текущую дату и время в формате год - месяц - день - час - минута - секунда - миллисекунда . (⎕TS
= Т IME с TAMP)3↑3↓
: отбросьте первые 3 элемента (т.е. год - месяц - день), а затем возьмите первые 3 элемента, которые остались (час - минута - секунда).'⊂:⊃,ZI2'⎕FMT
: отформатировать каждое число как двузначное целое число (I2
) с ведущими нулями (Z
) с префиксом двоеточия (⊂:⊃
). (Это приводит к матрице.)∊
: Получить все элементы в матрице в порядке строк. (Это дает вектор, в данном случае строку.)1↓
: удалить первый символ (который является дополнительным:
)⎕←
: выведите это⎕DL 1
: затем подождите одну секунду (⎕DL
= d e l ay)∇
: вызвать функцию рекурсивноисточник
{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1
для 28 байтов достаточно согласно OP .QBasic, 18 байт
источник
Haskell,
989685 байтАльтернативная версия с использованием нотации do:
Получает текущее время
getCurrentTime
изData.Time
библиотеки, затем передает его вprint
канал, ждет 1 000 000 микросекунд (1 секунда) и вызывает себя.Спасибо Ними и Маурис!
источник
m@main=...>>m
всегда корочеmain=...>>main
threadDelay
GHC-специфичен в любом случае, вы можете импортировать его изGHC.Conc
Пакет - 34
40байтЯ люблю встроенные переменные:
Определенно должна быть какая-то
sleep
команда в Batch в ближайшее время.источник
ping ...
сtimeout 1
. Также часы не очень точны при использованииping
. Лучше сtimeout
;):A
и заменитьgoto A
на%0
Python 3, 99 байт
Извините, если он форматирует код странно, делая это с iPad. (не спрашивайте). Я знаю, что этот код большой, учитывая некоторые другие ответы, но я еще не видел Python, поэтому я хотел добавить его.
источник
True
с1
, и если вы поместитеprint
иsleep
линию на ту же линию, что иwhile
(отделенной точкой с запятой) , что избавляет вас от пробелов.Java,
300166137125124 байтаПочтивдвое больше, чем благодаря VoteToClose, Paülo Ebermann и janschweizer!Ungolfed:
источник
java.util.*
вместо двухjava.util
импортовjava.text.*
по тем же причинам. Используйтеfor(;;)
для бесконечных циклов. ИспользуйтеString[]a
в основной декларации. Используйтеinterface A{static void main(...
, так как это сократит его еще больше. Вы можете использоватьException
болееInterruptedException
, и вы можете заменитьex
наe
. Вы также можете удалить весь текст внутри улова, так как в любом случае это ничего не делает.DateFormat
иCalendar
переменных. Вы заменяете содержимое цикла for наSystem.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}
.import java.util.*;import java.text.*;interface A{static void main(String[]a){for(;;){System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}}}}
throws Exception
короче, чем попытка / уловPerl,
9981755140362927 байтисточник
gmtime
вместоlocaltime
.printf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
gmtime."\n"
заставит скалярный контекст.."\n"
в гольфе: используйте,.$/
чтобы сохранить 2 байта. По крайней мере, используйте буквальный перевод строки вместо того,\n
чтобы сохранить 1 байт.