Виведіть поточний час


49

Виклик

Потрібно виводити поточний час безперервно (до скасування переривання) раз на секунду будь-яким із наведених нижче способів:

  • Він повинен бути у 24-годинному або AM / PM форматі.
    • Якщо воно є першим, воно повинно бути розділене колонами (тобто 15:47:36).
    • Якщо це останнє, воно повинно бути розділене колонами і мати наступний AM / PM (тобто 15:47:36)
  • Його можна витягнути з Інтернету.
  • Це може бути системний час.
  • Він повинен виводити будь-яку природно доступну форму виводу, яка підтримує обраний вами текст.
  • Вихід може мати додаткову інформацію, окрім часу в ньому, але ви повинні гарантувати один та лише один вихід часу за секунду.
  • Безперервний вихід повинен бути другим один від одного - якщо ви вирішите почекати, поки другий зміниться між виходами, це добре. Якщо ви зачекаєте секунду між кожним висновком, це цілком прийнятно, незважаючи на можливу втрату точності.

Оскільки це каталог, мови, створені після цього виклику, допускаються до змагань. Зауважте, що повинен бути перекладач, щоб подати заявку можна перевірити. Дозволяється (і навіть заохочується) писати цього перекладача самостійно для раніше не виконаної мови. Крім цього, повинні дотримуватися всі стандартні правила . Подання на більшості мов оцінюватимуться в байтах у відповідному попередньому кодуванні (зазвичай UTF-8).

Каталог

Фрагмент стека внизу цієї публікації генерує каталог з відповідей а) як список найкоротших варіантів для кожної мови та б) як загальний таблиця лідерів.

Щоб переконатися, що ваша відповідь відображається, будь ласка, почніть свою відповідь із заголовка, використовуючи наступний шаблон Markdown:

## 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


Чи включає "поки не скасовано переривання", чи закривається програма чи потрібен механізм для зупинки закодованого в неї циклу?
користувач81655


1
Попередження: Все sleep 1на основі правила перерви відповіді 5: ви повинні гарантувати одне, і лише одне, вихід часу в секунду. !!
Ф. Хаурі

1
Ф. Хаурі: Як так? Правило 6 говорить: "Якщо ви зачекаєте секунду між кожним висновком, це також добре".
YetiCGN

1
@Jasen Ні, але значення "це добре" означає, що варіант очікування все ще діє, незалежно від можливої ​​втрати часу. Я вам це уточнив.
Addison Crump

Відповіді:


56

Minecraft 1.8.7, 7 + 8 = 15 біт (байти + блоки)

Задіяний лише один командний блок:

xp 1 @p

Вихід надходить на консоль клієнта так:

разів

Як частина нормального виходу.

Це система:

система

xpдає заданий обсяг досвіду певному гравцеві з синтаксисом xp <amount> <player>. Я майже впевнений, що це найменша команда, яка має сингулярний вихід, який я можу отримати зараз.


3
Не кажіть "19 байт", тому що ви не вимірювали розмір відповіді в байтах.
feersum

6
@feersum Існує причина, щоб сказати байти, повірте мені. Це найближче до консенсусу для MC на даний момент.
Аддісон Кримп

4
Ви можете використовувати застарілі коди номерів, чи не так?
Conor O'Brien

4
Використовуйте цю систему балів, якщо хочете, 19 Whatevers, але це не 19 байт, тому що не існує визначеного раніше кодування, яке дозволяє зберігати це рішення у 19-байтовому файлі.
feersum

1
@ CᴏɴᴏʀO'Bʀɪᴇɴ Я вважаю, що мені доведеться загорнути його в JSON. Якщо я не використовував 1.6, але це практично інша мова.
Аддісон Кримп

17

JavaScript, 32 байти

setInterval("alert(Date())",1e3)

Використовує той факт, що setInterval оцінює код. Це не рекомендується, але коли це було проблемою у коді гольфу?

Date() повертає поточний час і дату у такому форматі (може змінюватися в залежності від системи).

 Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)

Чи setInterval(alert,1e3,Date())працювали б замість цього?
ETHproductions

@ETHproductions Це завжди показує той самий час для мене
ev3commander

@ETHproductions у вашому прикладі Date()буде оцінено лише один раз, коли ви створите інтервал
MMM

15

sh (+ годинник), 11 байт

Сценарій:

watch -n1 .

(немає останнього рядка)

Вихід:

Every 1,0s: . (SPACES) Sat Nov 28 19:07:51 2015

Кількість пробілів залежить від ширини клеми.

Тестували на Debian8 та NetBSD7.


Правильний інструмент для роботи, +1
Addison Crump

Зачекайте, чи вважається це мовою програмування? Чи можете ви надати мені посилання на перекладача?
Аддісон Крим

@VoteToClose watchє основним . Справжня мова - bash / sh.
Дверна ручка

Отже ... не повинно бути цього Bash (distribution), чи не так watch? @Doorknob
Addison Crump

1
Хм. Ви повинні використовувати -pперемикач, щоб не порушувати правило, ви повинні гарантувати одне та лише одне, час у секунду. !!
Ф. Хаурі

15

Оснащення , 8 7 6 блоків


(Так, я змінив його в MS Paint, тому що я був лінивий, щоб зробити інший знімок екрана. То що? Принаймні це читається.)
Клацніть сценарій, щоб запустити
цілодобовий годинник.


2
Я завжди люблю мови графічного програмування. : D +1
Аддісон Кримп

о, ей, ев3! Я вас знаю з форумів Snap / Scratch: P для чого саме вам потрібен Snap замість Scratch?
anOKsquirrel

2
@anOKsquirrel Тому що мені не потрібно вкладати усі ці об’єднувальні блоки.
ev3commander

Чи не слід це читати 9:21:08?
Лука

@Luke Як показано у відповіді TI-BASIC, час без початкового нуля у виході є нормальним. Це зрозуміло для людини і зрозуміло, який час.
Аддісон Кримп

11

Python 2, 47 байт

from time import*
while[sleep(1)]:print ctime()

Немає посилання на Інтернет, оскільки ідеон вимкнено (huehuehue) перед тим, як щось надрукувати.

Завдяки @xsot за while[sleep(1)]хитрість і ctimeхитрість.

Виводить поточну дату та час так: Fri Nov 27 21:23:02 2015


2
/ мене повільно плескають у каламбур. Дуже смішна Мего. ; D
Аддісон Кримп

Я опублікував ваше рішення для Python 3
jfs

sleep 1на основі правила перерви на відповідь 5: ви повинні гарантувати один та лише один вихід часу за секунду.
Ф. Хаурі

@ F.Hauri sleep 1змушує поточну нитку спати рівно одну секунду. Це відповідає правилам.
Mego

1
@ F.Hauri Враховуючи, що сам автор виклику використовує еквівалент sleep(1)як у своєму рішенні AppleScript, так і в його рішенні Vitsy + bash , це цілком прийнятно.
Mego

9

Perl, командний рядок, 24 байти

sleep(say)while$_=gmtime

Це потрібно запустити з командного рядка, як perl -E'sleep(say)while$_=gmtime'(у Windows, замість цього використовуйте подвійні лапки). Дата виводиться разом із часом, який, здається, дозволений .


Perl, 25 байт

sleep print$/.gmtime;do$0

У скалярному контексті gmtimeповернеться рядок, подібний до Sat Nov 28 10:23:05 2015. Результат від print, завжди 1, використовується як параметр для sleep. do$0використовується для виконання сценарію ще раз, після закінчення таймера.


2
Як засвідчено рішенням AppleScript @ VoteToClose та коментарем , витягувати час не потрібно.
Mego

1
Ще один 24-байтовое рішення: {sleep say~~gmtime;redo}.
Денис Ібаєв

sleep 1на основі правила перерви на відповідь 5: ви повинні гарантувати один та лише один вихід часу за секунду .
Ф. Хаурі

@ F.Hauri це правило було додано після того, як цю посаду було зроблено.
примо

9

Javascript ES6, 43 39 байт

setInterval(_=>console.log(Date()),1e3)

Працює з моїми поточними налаштуваннями часу (які протягом певного часу не були змінені, дякую), принаймні.

4 байти, збережені Conor O'Brien


попередження коротше?
Мальтісен

8
@Maltysen Я думаю, що у багатьох браузерах вам потрібно закрити одне вікно попередження, щоб побачити наступне.
flawr

@Maltysen Я спробував це, якимось чином
переплутав

1
Вам не потрібно .toTimeString()в Chrome і FF.
Боб

1
Я думаю, ви можете замінити new Date()наDate()
Conor O'Brien

8

Арсьоу , 27 байт

(@ t(pn(zz 1)(p(st %H:%M:%S

Я повинен був клудж разом дві нових функцій для цього завдання, zzі st.

pn: Точно так, як Лісп progn.

zz: Пряме посилання на Python's time.sleep.

st: Пряме посилання на Python's time.strftime.

Зазвичай лапки будуть потрібні навколо рядка формату, але оскільки пробілів немає, вони розбираються як символ. Перекладач оцінює невизначені символи як себе, тому ми отримуємо рядок.


1
Я хотів би проголосувати, але голосів у мене немає. +1; c І приємні оновлення. : D
Аддісон Крим

7

Bash, 51 31 24 21 20 байт

Дякуємо @quartata за дуже корисні коментарі. Дякуємо @Dennis за роз'яснення та відсікання ще більшої кількості байтів. Дякую @VoteToClose за роз'яснення правил (які, мабуть, я погано читаю), додатково зменшуючи байти.

dateвідображає повну дату з 24-годинним годинником. sleep 1спить секунду. exec $0циклічно пише цикл.

date;sleep 1;exec $0

Вам не потрібен шебанг.
спагетто

Крім того, я думаю, ви можете замінити trueна, sleep 1оскільки sleepповертає a 1.
спагетто

date +%T;sleep 1;exec $0трохи коротше. @quartata Nitpicking: sleepмає код виходу нульовий, тому whileпродовжується.
Денніс

3
Ой я ідіот
спагетто

2
Після цього вам не потрібно місця date, тому це лише 20 байт.
ThisSuitIsBlackNot

6

Befunge 98, 53 байти

 v
v>"EMIT"4(>H.8,':,M.8,':,S:.8,d,
>:S-    !!k^

Примітки:

  1. Ця програма не занулює цифри, які вона друкує.
  2. Ця програма друкує пробіл, а потім символ зворотного простору після кожного номера, оскільки .команда друкує неявний пробіл в кінці.
  3. Розмір стека в цій програмі зростає з кожною секундою, і, таким чином, з часом вона втратить пам'ять.
  4. Ця програма замінить попередній час, коли вона надрукує новий. Щоб він друкував кожного разу на новому рядку, змініть dна першому рядку на ana

Чому потрібен рядок "TIME"? Чи є якийсь спосіб це схопити? (Я про це не знав)
Addison Crump

"EMIT"4(На початку програми говорить перекладачеві , щоб завантажити TIMEвідбитки пальців, що дозволяє H, Mі Sінструкції. (Ні, це число не випромінює число 4).
pppery

Це приголомшливо . Я ніколи навіть не думав, що багато езоланг зроблять це, +1.
Аддісон Кримп

@VoteToClose Befunge 98 навіть має вказівку виконувати довільну програму, що вискакує зі стека.
pppery

1
вибігає вивчити цю мову Вибачте ...
Аддісон Крам

6

mIRC 7,49 20 16 байт

/timer 0 1 $time

Де ми можемо це перевірити?
Аддісон Кримп

Ви повинні завантажити mIRC - це умовно-клієнтський IRC-клієнт. Ви можете завантажити його з: mirc.com також, оскільки відповідь, що використовується вище, sayвам потрібно буде підключитися до сервера, а потім приєднатися до каналу. інших розумних, яких ви б використали echoзамість say. mIRC має свою власну мову сценаріїв mSL (мова сценаріїв mIRC)
Do0msDay

5

AutoHotkey, 50 байт

x::Send,% a!=A_Sec? A_Hour ":" A_Min ":" a:=A_Sec:

Примітки:

  1. Потрібно тримати xпостійний вихід.
  2. Видаліть палець, xщоб перервати та припинити вихід.
  3. Вихід у 24-годинному форматі.

2
Ви можете за кілька додаткових байтів помістити це в підказку, щоб користувач не вимагав утримувати x.
Michelfrancis Bustillos

5

C (на Linux x64), 179 177 175 168 159 байт

#include<time.h>
#include<sys/time.h>
main(){struct timeval a;char b[9];for(;;){gettimeofday(&a,0);strftime(b,9,"%T",localtime(&a.tv_sec));puts(b);sleep(1);}}

Безголівки:

#include <time.h>
#include <sys/time.h>
main(){
  struct timeval a;
  char b[9];
  for(;;){
    gettimeofday(&a, 0);
    strftime(b, 9, "%T",localtime(&a.tv_sec));
    puts(b);
    sleep(1);
  }
}

Тестується лише на і, ймовірно, лише функціях на linux x64 (x32 може працювати, але інші платформи, ймовірно, не будуть).

Основна відмінність цієї програми від іншої розміщеної програми C полягає у використанні викликів функцій, що ексклюзивні для Linux, що, хоча жахлива практика для реального програмного забезпечення, економить досить багато байтів ... якщо проігнорувати всі попередження компілятора.


Ласкаво просимо до PPCG! Якщо я не помиляюся, я вважаю, що ви можете видалити пробіл між #includeі <...>. Також ви можете використовувати 1e6замість 1000000?
Аддісон Кримп

@VoteToClose Ви мали рацію щодо пробілів у #includes. Це не схоже, що usleep () приймає 1e6, однак - виходячи з того, як швидко він починає виплювати часові позначки, він просто інтерпретує це як 1.
Gamerdog

¯ \ _ (ツ) _ / ¯ Я теж не знаю С. Я дозволю професіоналам. Ласкаво просимо, проголосуй. : D
Addison Crump

А, ще одна річ - вам не доведеться розрізати рядок лише на той час, тому ви можете просто вивести весь час дати за умови, що в ній є потрібний рядок часу.
Аддісон Кримп

2
Ви можете використовувати %Tяк специфікацію формату в strftime.
Mego

5

Джольф , 14 8 7 байт

Закреслена 14 - це закреслена 1? Ні, це ніколи не наздожене;)

Спробуйте тут! Клацніть запустити, не натискайте на інше ^ _ ^ сторінка дуже ... вибухонебезпечна. Так. Виправлена ​​система виводу з оновленням.

TaD#`~2

(Я додав деякі константи, і ~1до ~4є ступенями 10.)

Пояснення

setInterval("alert(Date())",1000);
     T         a      D#   ` ~2

4
Хтось повинен створити YAJSGV (ще один варіант для гольфу JavaScript).
intrepidcoder

Це, здається, друкує набагато більше, ніж просто час.
Денніс

1
@Dennis Я припустив, що це нормально, як і за іншими рішеннями
Conor O'Brien

Мій поганий, я лише прочитав твою і відповідь Баша.
Денніс

@Dennis Не проблема ^ _ ^
Conor O'Brien

5

Діалог APL , 27 18 16 байт

':',¨⎕TS⋄→≢⎕DL 1

Спробуйте в Інтернеті!

⎕TSYMD hmst наперед
':',¨: до кожного
нового оператора
⎕DL 1зачекайте секунду та поверніть фактичний очікуваний час; 1,0 секунди
підрахунок фактично очікуваного часу, даючи 1
перехід до рядка (1 = цей рядок)


4

Perl 6 , 29 байт

Право спосіб зробити це:

Supply.interval(1).tap: -> $ {
  say join ':',.hour,.minute,.whole-second given DateTime.now
}
await Promise.new; # halt this thread indefinitely
22:21:58
22:21:59
22:22:0
22:22:1
22:22:2
…

Версія для гольфу

loop {sleep say join ':',now.polymod(1,60,60,24)[31]} # 56 bytes
3:59:26
3:59:27
3:59:28
3:59:29
…

Оскільки вихід не повинен обмежуватися лише часом, я можу зробити його трохи коротшим.

loop {sleep say DateTime.now} # 29 bytes
2015-11-27T22:18:10-06:00
2015-11-27T22:18:11-06:00
2015-11-27T22:18:12-06:00
2015-11-27T22:18:13-06:00
…


4

Powershell, 19 байт

for(){date;sleep 1}

Оскільки з тих пір було зазначено, що для виведення потрібно лише включити hh: mm: ss, до якого можна зменшитиfor(){date;sleep 1}
steve

4

PHP, 37 байт

<?=date('G:i:s');header('refresh:1');

Виводить час відформатованого сервера та встановлює сторінку оновлювати кожну секунду.

Звичайно, це залежить від вашого підключення до Інтернету та наскільки швидкий відгук вашого сервера :)

Демо


Ні, не освіжаючий:Warning: Cannot modify header information - headers already sent
Мартін

@Martijn Я поняття не маю, з чим можна возитися, бо це працює на мене :)
nicael

Я вилучу потік як користь від сумнівів, але це працює точно один раз для мене. Пробували на двох різних регулярних серверах.
Martijn

2
Залежить від того, чи увімкнено буферне виведення.
Андреа

<?=header('refresh:1').date('G:i:s');має працювати з будь-яким налаштуванням вибору виводу.
Ясен

4

VBA, 69 байт

Отримати час просто, now()тільки виводити кожні 1 секунду .... НАБАГО більше докладнішого.

Це "правильний" спосіб очікування 1 секунди в VBA. 78 байт

Sub a():Debug.Print Now():Application.Wait Now()+TimeValue("0:0:1"):a:End Sub

Або якщо ви хочете вирізати кілька куточків і лише правильно 86% часу, це досить добре 63 байти,
додавши один SigFig, ви отримаєте 95% точності, а третій - 99,36%

Sub a():Debug.Print Now():Application.Wait Now()+1e-5:a:End Sub

Якщо ви хочете отримати вищевказаний метод на 100%, тоді вам потрібно 69 байт (1/86400)

Sub a():Debug.Print Now():Application.Wait Now()+(1/86400):a:End Sub

Усі ці методи наткнуться на високосну секунду, оскільки вони не чекають 1 секунди, а чекають, поки не залишиться 1 секунда. Опівночі, коли годинник опускається на годину, цей годинник зупиняється на 1 годину, а потім піднімає місце, де він зупинився.

VBA дозволяє використовувати метод сну, але ваш байт-передавач знищений. 97 байт

Declare Sub Sleep Lib "kernel32" (ByVal k as Long)
Sub a():Debug.Print Now():Sleep(1e3):a:End Sub

3

JavaScript, 47 38 35 байт

for(p=1;t=Date();p=t)t!=p&&alert(t)

Пояснення

Постійно перевіряє, чи змінився час, то alerts, чи є.

for(
  p=1;
  t=Date();
  p=t
)
  t!=p
    &&alert(t)

Вам не доведеться просто отримувати часовий рядок. ; D Поки це десь там.
Аддісон Кримп

@VoteToClose О правда!
користувач81655

Не думайте, що вам потрібно +"", як без new, Date()повертає рядок.
ETHproductions

@ETHproductions Ага, так, це було залишено після використання new. Дякуємо, що це зробили!
користувач81655

3

AppleScript, 51 35 байт

повторити
поточна дата журналу
затримка 1
кінець

Досить косо очевидний. Друкує поточну дату, яка містить час, затримує секунду, а потім продовжує.


1
Тож зачекайте, чи дозволяється роздрукувати поточну дату, а також час?
спагето

@quartata Так, будь-яке поєднання з часом, якщо час постійно виводиться і гарантовано виводиться, є нормальним.
Аддісон Кримп

затримка 1 робить що? пауза на 1000000000 нс?
Ясен

@Jasen Це правильно.
Аддісон Кримп

3

𝔼𝕊𝕄𝕚𝕟, 13 символів / 25 байт

Ĥ⇀ôᶁ⬮+⬬),1𝕜)

Try it here(Firefox only).

Це дивно читабельно.


4
Коли ви говорите "напрочуд читабельний", ви знаєте, що маєте справу із кумедною мовою. +1
Addison Crump

3

Діалог APL, 36 байт

Не дуже короткий цього разу.

{⎕←1↓∊'⊂:⊃,ZI2'⎕FMT 3↑3↓⎕TS⋄∇⎕DL 1}1

Це дає 24-годинний час, тобто:

14:37:44
14:37:45
14:37:46
...

Пояснення:

  • {... }1: визначити функцію та викликати її (аргумент ігнорується, але нам потрібна функція, щоб викликати її рекурсивно)
    • ⎕TS: системна функція, яка повертає поточну дату та час у форматі рік - місяць - день - година - хвилина - секунда - мілісекунда . ( ⎕TS= t ime s tamp)
    • 3↑3↓: опустіть перші 3 предмети (тобто рік - місяць - день), а потім візьміть перші три елементи, що залишилися (година - хвилина - секунда).
    • '⊂:⊃,ZI2'⎕FMT: форматуйте кожне число у вигляді двоцифрового цілого числа ( I2) з провідними нулями ( Z), встановленими двокрапкою ( ⊂:⊃). (Це призводить до отримання матриці.)
    • : Отримайте всі елементи в матриці в порядку рядків. (Це дає вектор, в даному випадку рядок.)
    • 1↓: скиньте перший символ (що є зайвим :)
    • ⎕←: вивести його
    • ⎕DL 1: тоді зачекайте одну секунду ( ⎕DL= d e l ay)
    • : викликати функцію рекурсивно

{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1на 28 байт, достатньо за ОП .
Адам

Нові правила дозволяють вивозити сміття та випадкові місця, тому ви можете позбутися багато.
Адам


3

Haskell, 98 96 85 байт

import GHC.Conc
import Data.Time
m@main=getCurrentTime>>=print>>threadDelay(10^6)>>m

Альтернативна версія з використанням позначення do:

main = do
  time <- getCurrentTime
  print time
  threadDelay 1000000
  main

Повертає поточний час з getCurrentTimeз Data.Timeбібліотеки, потім труби його в print, чекає 1000000 мікросекунд (1 секунда) і називає себе.

Дякую Німі та Маврису!


m@main=...>>mзавжди коротше, ніжmain=...>>main
Лінн

Крім того, оскільки threadDelayвсе-таки є специфічним для GHC, ви можете імпортувати його з GHC.Conc
Lynn

3

Пакетна - 34 40 байт

Я люблю вбудовані змінні:

:A                    //Set label A
echo %time%           //Print the time in 24 hour format
timeout 1    //Wait 1 second (thanks DavidPostill)
goto A                //Jump back to A and repeat

Очевидно, sleepнезабаром має бути якась команда в Batch.


Немає вбудованого сну, але є час очікування . Ви можете замінити ping ...з timeout 1. Також годинник не дуже точний при використанні ping. Краще з timeout;)
DavidPostill

@DavidPostill дякую за підказку, я ніколи не знав, що є така команда в Windows. :)
GiantTree

@GiantTree Ви дуже раді;)
DavidPostill

Гольф: вийміть :Aта замініть goto Aна%0
stevefestl

3

Пітон 3, 99 байт

Вибачте, якщо він форматує код дивно, роблячи це з ipad. (не питайте). Я знаю, що цей код великий, враховуючи деякі інші відповіді, але я ще не бачив пітона, тому хотів його додати.

import time
import datetime
while(True):
 print(datetime.datetime.now().time())
 time.sleep(1)  

Ви можете замінити Trueз 1, і якщо ви помістіть printі sleepлінію на ту ж лінію, що і while(відокремленої крапкою з комою) , що позбавляє вас від прогалин.
підземниймонорельс

@undergroundmonorail ок, спасибі за підказку True / 1. Я до цього не звик, оскільки Java Dosent це робить. Я не знав, що і в Python є крапки з комою. Я
вивчу

3

Java, 300 166 137 125 124 байт

Майже більше, ніж удвічі, завдяки VoteToClose, Paülo Ebermann та janschweizer!

interface A{static void main(String[]a)throws Exception{for(;;Thread.sleep(1000))System.out.println(new java.util.Date());}}

Безголівки:

interface A {
    static void main(String[] a) throws Exception {
        for (;; Thread.sleep(1000)) System.out.println(new java.util.Date());
    }
}

1
Спростіть свій імпорт: java.util.*замість двох java.utilімпортів java.text.*з однакових міркувань. Використовуйте for(;;)для нескінченних петель. Використання String[]aв основній декларації. Використовуйте interface A{static void main(..., оскільки це ще більше скоротить. Ви можете використовувати Exceptionover InterruptedException, а ви можете замінити exна e. Ви також можете видалити весь текст всередині улову, оскільки це все одно нічого не робить.
Аддісон Кримп

1
Так, інтерфейс дещо дурний - я поняття не маю, чому Java дозволить це зробити, враховуючи, що інтерфейси розроблені спеціально для неможливості.
Аддісон Кримп

1
Дві речі: вам потрібно змінити часовий рядок на "HH: mm: ss" - відтепер ви форматуєте "Hour: Month: Second". Крім того, оскільки ви використовуєте цикл, ви можете позбутися декларацій змінних DateFormatі Calendarвсі разом. Ви замінюєте вміст циклу for на System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}.
Аддісон Кримп

1
Усі речі, які я щойно запропонував, завершили: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){}}}}
Addison Crump

1
throws Exceptionкоротше TRY / улову
фази

3

Perl, 99 81 75 51 40 36 29 27 байт

sleep(print gmtime.$/);do$0

1
Ви можете скоротити його, використовуючи gmtimeзамість localtime.
Бред Гілберт b2gills

2
Такожprintf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
Бред Гілберт b2gills

1
gmtime."\n"змусить скалярний контекст.
прим

1
У ."\n"гольфі вам майже ніколи не слід робити : використовуйте .$/для економії 2 байти. Як мінімум, використовуйте буквальний новий рядок замість того, \nщоб зберегти 1 байт.
ThisSuitIsBlackNot
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.