Saída da hora atual

49

Desafio

Você deve exibir a hora atual continuamente (até ser cancelada por uma interrupção), uma vez a cada segundo, por qualquer um dos seguintes meios:

  • Ele deve estar no formato de 24 horas ou AM / PM.
    • Se for o primeiro, deve ser espaçado com dois pontos (por exemplo, 15:47:36).
    • Se for o último, deve ser espaçado com dois pontos e ter o seguinte AM / PM (ou seja, 15:47:36)
  • Pode ser retirado da internet.
  • Pode ser a hora do sistema.
  • Ele deve gerar qualquer forma de saída naturalmente acessível que suporte o texto que você escolher.
  • A saída pode conter informações extras além do tempo, mas você deve garantir uma e apenas uma saída de tempo por segundo.
  • A saída contínua deve ter um segundo de diferença - se você optar por esperar até a segunda alteração entre as saídas, tudo bem. Se você esperar um segundo entre cada saída, isso é perfeitamente aceitável, apesar da eventual perda de precisão.

Por se tratar de um catálogo, os idiomas criados após esse desafio podem competir. Observe que deve haver um intérprete para que o envio possa ser testado. É permitido (e até encorajado) escrever esse intérprete para um idioma anteriormente não implementado. Fora isso, todas as regras padrão do devem ser obedecidas. Os envios na maioria dos idiomas serão pontuados em bytes em uma codificação preexistente apropriada (geralmente UTF-8).

Catálogo

O snippet de pilha na parte inferior desta postagem gera o catálogo a partir das respostas a) como uma lista da solução mais curta por idioma eb) como uma tabela geral de líderes.

Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:

## Language Name, N bytes

onde Nestá o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:

## Ruby, <s>104</s> <s>101</s> 96 bytes

Se você quiser incluir vários números no cabeçalho (por exemplo, porque sua pontuação é a soma de dois arquivos ou você deseja listar as penalidades do sinalizador de intérpretes separadamente), verifique se a pontuação real é o último número no cabeçalho:

## Perl, 43 + 2 (-p flag) = 45 bytes

Você também pode transformar o nome do idioma em um link que será exibido no snippet:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes

Addison Crump
fonte
"Até cancelado por uma interrupção" inclui o fechamento do programa ou precisa de um mecanismo para interromper o ciclo codificado nele?
user81655
11
Aviso:sleep 1 regra de quebra de resposta com base em todas as 5: você deve garantir uma, e apenas uma, saída de tempo por segundo. !!
F. Hauri 17/05
11
F. Hauri: Como assim? A regra 6 diz "Se você esperar um segundo entre cada saída, tudo bem também".
precisa saber é o seguinte
11
@ Jasen Não, mas o significado de "tudo bem" implica que a opção de espera ainda é válida, independentemente da eventual perda de tempo. Eu esclareci isso para você.
precisa saber é o seguinte

Respostas:

56

Minecraft 1.8.7, 7 + 8 = 15 blytes (bytes + blocos)

Apenas um bloco de comando envolvido:

xp 1 @p

A saída vai para o console do cliente da seguinte maneira:

vezes

Como parte da saída normal.

Este é o sistema:

o sistema

xpfornece uma quantidade especificada de experiência a um jogador especificado com a sintaxe xp <amount> <player>. Tenho certeza de que este é o menor comando que possui uma saída singular que posso obter agora.

Addison Crump
fonte
3
Não diga "19 bytes" porque você não mediu o tamanho da resposta em bytes.
feersum
6
@feersum Há uma razão para eu dizer bytes, confie em mim. Esta é a coisa mais próxima de um consenso para MC a partir de agora.
Addison Crump
4
Você pode usar os códigos numéricos obsoletos, não pode?
Conor O'Brien
4
Use esse sistema de pontuação, se desejar, 19 ou mais, mas não são 19 bytes, porque não há codificação definida anteriormente que permita armazenar esta solução em um arquivo de 19 bytes.
feersum
11
@ CᴏɴᴏʀO'Bʀɪᴇɴ Eu teria que envolvê-lo em JSON, acredito. A menos que eu usei o 1.6, mas isso é praticamente outro idioma.
Addison Crump
17

JavaScript, 32 bytes

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

Usa o fato de que setInterval avalia o código. Isso não é recomendado, mas quando isso foi uma preocupação no código de golfe?

Date() retorna a hora e a data atuais em um formato como este (pode variar de acordo com o sistema).

 Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)
intrepidcoder
fonte
Em setInterval(alert,1e3,Date())vez disso, funcionaria?
ETHproductions
@ETHproductions Sempre mostra o mesmo horário para mim #
ev3commander
O @ETHproductions no seu exemplo Date()será avaliado apenas uma vez quando você criar o intervalo
MMM
15

sh (+ relógio), 11 bytes

Roteiro:

watch -n1 .

(sem nova linha à direita)

Resultado:

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

A quantidade de espaços depende da largura do terminal.

Testado no Debian8 e NetBSD7.

yeti
fonte
Ferramenta certa para o trabalho, +1
Addison Crump
Espere, isso conta como uma linguagem de programação? Você pode me dar um link para um intérprete?
Addison Crump
@VoteToClose watché um coreutil. O idioma real é bash / sh.
Maçaneta
Então ... não deveria ser Bash (distribution), não é watch? @Doorknob
Addison Crump
11
Hmm Você precisa usar a -popção para não violar a regra. Você deve garantir uma e apenas uma saída de tempo por segundo. !!
F. Hauri 17/05
15

Snap , 8 7 6 blocos


(Sim, mudei no MS Paint porque estava com preguiça de fazer outra captura de tela. E daí? Pelo menos é legível.)
Clique no script para executar o
relógio de 24 horas.

ev3commander
fonte
2
Eu sempre amo linguagens de programação gráfica. : D +1
Addison Crump
oh hey ev3! Eu conheço você nos fóruns do Snap / Scratch: P por que você precisa do Snap em vez do Scratch, exatamente?
Anoksquirrel
2
@anOKsquirrel Porque eu não preciso aninhar todos esses blocos de junção.
ev3commander
Isso não deveria ler 9:21:08?
Luke
@ Lucas Como mostra a resposta TI-BASIC, o tempo sem o zero inicial em uma saída é bom. É legível por humanos e claro que horas são.
Addison Crump
11

Python 2, 47 bytes

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

Nenhum link on-line porque o ideone atinge o tempo limite (huehuehue) antes de imprimir qualquer coisa.

Obrigado a @xsot pelo while[sleep(1)]truque e pelo ctimetruque.

Imprime a data e hora atuais da seguinte forma: Fri Nov 27 21:23:02 2015

Mego
fonte
2
/ me bate palmas lentamente no trocadilho. Mego muito engraçado. ; D
Addison Crump
sleep 1regra 5 de quebra de resposta baseada: você deve garantir uma, e apenas uma, saída de tempo por segundo.
F. Hauri 17/05
@ F.Hauri sleep 1faz com que o encadeamento atual fique em repouso por exatamente um segundo. Está em conformidade com as regras.
Mego
11
@ F.Hauri Considerando que o próprio autor do desafio usa o equivalente sleep(1)em sua solução AppleScript e em sua solução Vitsy + bash , é claramente aceitável.
Mego
9

Perl, linha de comando, 24 bytes

sleep(say)while$_=gmtime

Isso deve ser executado na linha de comando, pois perl -E'sleep(say)while$_=gmtime'(no Windows, use aspas duplas). A data será impressa junto com a hora, o que parece ser permitido .


Perl, 25 bytes

sleep print$/.gmtime;do$0

Em um contexto escalar, gmtimeretornará uma sequência semelhante a Sat Nov 28 10:23:05 2015. O resultado de print, sempre 1, é usado como parâmetro para sleep. do$0é usado para executar o script novamente, após o término do cronômetro.

primo
fonte
2
Conforme evidenciado pela solução e pelo comentário AppleScript do @ToToTo , você não precisa extrair o tempo.
Mego
11
Outra solução de 24-byte: {sleep say~~gmtime;redo}.
Denis Ibaev 17/05/19
sleep 1regra de quebra de resposta baseada em 5: você deve garantir uma, e apenas uma, saída de tempo por segundo .
F. Hauri 17/05
@ F.Hauri, a regra foi adicionada após a publicação deste post.
Primo
9

Javascript ES6, 43 39 bytes

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

Funciona com minhas configurações de horário atuais (que não foram alteradas há algum tempo, obrigado), pelo menos.

4 bytes salvos por Conor O'Brien.

SuperJedi224
fonte
alerta é mais curto?
Maltysen 27/11/2015
8
@ Maltysen Eu acho que em muitos navegadores você precisa fechar uma janela de alerta para ver a próxima.
flawr
@Maltysen eu tentei, mexe-se o intervalo de alguma forma
SuperJedi224
11
Você não precisa .toTimeString()no Chrome e no FF.
Bob
11
Eu acho que você pode substituir new Date()porDate()
Conor O'Brien
8

Arcyóu , 27 bytes

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

Eu tive que juntar duas novas funções para esse desafio, zze st.

pn: Exatamente como o Lisp progn.

zz: Link direto para o Python time.sleep.

st: Link direto para o Python time.strftime.

Normalmente, aspas seriam necessárias em torno da sequência de formatação, mas como não há espaços, ela é analisada como um símbolo. O intérprete avalia símbolos indefinidos como eles mesmos, para obter uma string.

bkul
fonte
11
Eu votaria, mas não tenho mais votos. +1; c E boas atualizações. : D
Addison Crump
7

Bash, 51 31 24 21 20 bytes

Obrigado a @quartata por alguns comentários muito úteis. Obrigado @Dennis pelos esclarecimentos e por cortar ainda mais bytes. Obrigado ao @VoteToClose por esclarecer as regras (que aparentemente são ruins em ler), reduzindo ainda mais os bytes.

dateexibe a data completa com um relógio de 24 horas. sleep 1dorme por um segundo. exec $0circunda o script infinitamente.

date;sleep 1;exec $0
Liam
fonte
Você não precisa do shebang.
a spaghetto
Além disso, eu acho que você pode substituir o truecom o sleep 1desde que sleepretorna um 1.
a spaghetto
date +%T;sleep 1;exec $0é um pouco mais curto. @ Quartata Nitpicking: sleeptem o código de saída zero, e é por isso que whilecontinua.
Dennis
3
Oh, eu sou um idiota
um spaghetto
2
Você não precisa do espaço depois date, portanto, são apenas 20 bytes.
ThisSuitIsBlackNot
6

Entre 98, 53 bytes

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

Notas:

  1. Este programa não zera os números que imprime.
  2. Este programa imprime um espaço e, em seguida, um caractere de backspace após cada número, pois o .comando imprime um espaço implícito no final.
  3. O tamanho da pilha neste programa aumenta a cada segundo e, portanto, acaba ficando sem memória.
  4. Este programa substituirá o horário anterior quando imprimir um novo. Para imprimi-lo sempre em uma nova linha, altere da primeira linha para umaa
pppery
fonte
Por que a string "TIME" é necessária? Existe alguma maneira de pegá-lo? (Eu não sabia sobre isso)
Addison Crump
O "EMIT"4(no início do programa está dizendo a intérprete para carregar a TIMEimpressão digital, que permite que os H, Me Sinstruções. (Não, não emite o número 4).
pppery
Isso é demais . Eu nunca pensei que muitos esolangs fariam isso, +1.
Addison Crump
@VoteToClose O Befunge 98 ainda tem uma instrução para executar um programa arbitrário retirado da pilha.
pppery
11
foge para aprender este idioma Com licença ...
Addison Crump
6

mIRC 7.49 20 16 bytes

/timer 0 1 $time
onkarjit
fonte
Onde podemos testar isso?
Addison Crump
Você precisa baixar o mIRC, que é um cliente shareware de IRC. Você pode baixá-lo em: mirc.com também, já que a resposta acima faz uso de sayvocê, precisará se conectar a um servidor e ingressar em um canal. caso contrário, você usaria em echovez de say. mIRC tem a sua própria linguagem de script MSL (mIRC linguagem de script)
onkarjit
5

AutoHotkey, 50 bytes

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

Notas:

  1. Requer que você segure xpara saída contínua.
  2. Remova o dedo xpara interromper e finalizar a saída.
  3. A saída está no formato de 24 horas.
erros
fonte
2
Você pode, por alguns bytes extras, colocar isso em uma dica de ferramenta para que não exija que o usuário aguarde x.
Michelfrancis Bustillos
5

C (no Linux x64), 179 177 175 168 159 bytes

#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);}}

Ungolfed:

#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);
  }
}

Testado apenas no linux x64 e provavelmente apenas funciona no (x32 pode funcionar, mas outras plataformas provavelmente não).

A principal diferença entre este programa e o outro programa C publicado é o uso de chamadas de função exclusivas do Linux, que, embora sejam uma prática terrível para software real, economizam alguns bytes ... se você ignorar todos os avisos do compilador.

Gamerdog
fonte
Bem-vindo ao PPCG! A menos que eu esteja enganado, acredito que você pode remover o espaço entre #includee <...>. Além disso, você pode usar em 1e6vez de 1000000?
Addison Crump
@VoteToClose Você estava certo sobre os espaços no #includes. No entanto, parece que usleep () aceita 1e6 - com base na rapidez com que começa a citar registros de data e hora, apenas o interpreta como 1. #
#
¯ \ _ (ツ) _ / ¯ Eu também não conheço C. Vou deixar os profissionais nisso. Bem-vindo novamente, faça uma votação. : D
Addison Crump
Ah, outra coisa - você não precisa cortar a string apenas por um tempo, para poder produzir a data e o horário inteiro, desde que tenha a string de tempo necessária.
Addison Crump
2
Você pode usar %Tcomo a especificação de formato em strftime.
Mego
5

Jolf , 14 8 7 bytes

Riscado 14 é um 1 riscado? Não, ele nunca vai pegar;)

Experimente aqui! Clique em executar, não clique em mais nada ^ _ ^ a página é altamente ... explosiva. Sim. Sistema de saída fixo com atualização.

TaD#`~2

(Eu adicionei algumas constantes, e ~1que ~4são potências de 10.)

Explicação

setInterval("alert(Date())",1000);
     T         a      D#   ` ~2
Conor O'Brien
fonte
4
Alguém deve criar o YAJSGV (ainda outra variante de golfe no JavaScript).
Intrepidcoder #
Isso parece imprimir muito mais do que apenas o tempo.
Dennis
11
@ Dennis eu assumi que estava bem como por outras soluções
Conor O'Brien
Meu mal, eu só tinha lido o seu e a resposta do Bash.
Dennis
@Dennis Não é um problema ^ _ ^
Conor O'Brien
5

Dyalog APL , 27 18 16 bytes

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

Experimente online!

⎕TSYMD hmst prepend
':',¨: para cada
nova instrução,
⎕DL 1aguarde um segundo e retorne o tempo real de espera; 1,0 segundos
e alguns somam o tempo real de espera, dando 1
ir para a linha (1 = esta linha)

Adão
fonte
4

Perl 6 , 29 bytes

A maneira correta de fazer isso:

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
…

A versão golfada

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
…

Como a saída não precisa ser restrita apenas ao tempo, posso torná-la um pouco menor.

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
…
Brad Gilbert b2gills
fonte
4

R, 38 bytes

repeat{Sys.sleep(1);print(Sys.time())}

Isso exibe a hora atual no seguinte formato:

[1] "2015-11-28 07:34:01 CET"
Sven Hohenstein
fonte
4

Powershell, 19 bytes

for(){date;sleep 1}
Danko Durbić
fonte
Como é já foi apontado que a saída só precisa incluir as hh: mm: ss você pode reduzir afor(){date;sleep 1}
steve
4

PHP, 37 bytes

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

Mostra a hora do servidor formatado e define a página para atualizar a cada segundo.

Obviamente, isso depende da sua conexão com a Internet e da rapidez de resposta do servidor :)

Demo

nicael
fonte
Não, não é refrescante:Warning: Cannot modify header information - headers already sent
Martijn
@Martijn Eu não tenho idéia o que você pode mexer com, porque ele funciona para mim :)
nicael
Vou remover o voto negativo como benefício da dúvida, mas isso funciona exatamente uma vez para mim. Tentei em dois servidores regulares diferentes.
Martijn
2
Depende se você tem o buffer de saída ativado.
187 Andrea Andrea
<?=header('refresh:1').date('G:i:s');deve funcionar com a configuração de buffer de saída.
Jasen 07/01
4

VBA, 69 bytes

Conseguir o tempo é fácil, now()produzindo apenas a cada 1 segundo .... MUITO mais detalhado.

Esta é a maneira "correta" de esperar 1 segundo no VBA. 78 bytes

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

Ou se você deseja cortar alguns cantos e apenas estar certo 86% das vezes é bom o suficiente 63 bytes
adicionando um SigFig levam você a 95% de precisão e um terceiro a 99,36%

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

Se você deseja obter o método acima para 100%, precisará de 69 bytes (1/86400)

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

Todos esses métodos tropeçariam em um segundo de salto, porque eles não esperam 1 segundo, mas esperem até 1 segundo. À meia-noite, quando os relógios recuam uma hora, este relógio pára por 1 hora e depois retoma de onde parou.

O VBA permite o Método de suspensão, mas o acoplador de bytes está em ruínas. 97 bytes

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

JavaScript, 47 38 35 bytes

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

Explicação

Verifica continuamente se o tempo mudou e, alertse houver.

for(
  p=1;
  t=Date();
  p=t
)
  t!=p
    &&alert(t)
user81655
fonte
Você não precisa apenas obter a sequência do tempo. ; D Contanto que esteja lá em algum lugar.
Addison Crump #
@VoteToClose Oh true!
user81655
Não pense que você precisa do +"", como sem new, Date()retorna uma string.
ETHproductions
@ETHproductions Ah, sim, foi deixado de lá quando foi usado new. Obrigado por capturar isso!
user81655
3

AppleScript, 51 35 bytes

repetir
data atual do log
atraso 1
fim

Bastante óbvio. Imprime a data atual, que contém a hora, atrasa um segundo e continua.

Addison Crump
fonte
11
Então espere, é permitido imprimir a data atual e a hora?
a spaghetto
@quartata Sim, qualquer concatenação com o tempo, desde que o tempo seja continuamente produzido e garantido que seja produzido, é bom.
Addison Crump
atraso 1 faz o que? pausa para 1000000000 ns?
Jasen 07/01
@ Jason Isso está correto.
Addison Crump
3

, 13 caracteres / 25 bytes

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

Try it here(Firefox only).

Isso é surpreendentemente legível.

Mama Fun Roll
fonte
4
Quando você diz "surpreendentemente legível", sabe que está lidando com uma linguagem divertida. +1
Addison Crump
3

Dyalog APL, 36 bytes

Não é muito curto desta vez.

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

Isso gera 24 horas, ou seja:

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

Explicação:

  • {... }1: define uma função e a chama (o argumento é ignorado, mas precisamos da função para chamá-la recursivamente)
    • ⎕TS: uma função do sistema que retorna a data e hora atuais, no formato ano - mês - dia - hora - minuto - segundo - milissegundo . ( ⎕TS= t ime s tamp)
    • 3↑3↓: solte os 3 primeiros itens (ou seja, ano - mês - dia) e retire os 3 primeiros itens restantes (hora - minuto - segundo).
    • '⊂:⊃,ZI2'⎕FMT: formate cada número como um número inteiro de dois dígitos ( I2) com zeros à esquerda ( Z), prefixados por dois pontos ( ⊂:⊃). (Isso resulta em uma matriz.)
    • : Obtenha todos os elementos da matriz, em ordem de linha. (Isso fornece um vetor, neste caso, uma string.)
    • 1↓: solta o primeiro caractere (que é um extra :)
    • ⎕←: output it
    • ⎕DL 1: aguarde um segundo ( ⎕DL= d e l ay)
    • : chama a função recursivamente
marinus
fonte
{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1para 28 bytes, é suficiente conforme o OP .
Adám
As novas regras permitem a saída de lixo e espaços aleatórios, para que você possa se livrar muito.
Adám
3

QBasic, 18 bytes

?TIME$
SLEEP 1
RUN
Lynn
fonte
3

Haskell, 98 96 85 bytes

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

Versão alternativa usando a notação:

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

Obtém o horário atual getCurrentTimeda Data.Timebiblioteca e, em seguida, canaliza para ele print, espera 1.000.000 de microssegundos (1 segundo) e chama a si próprio.

Graças a nimi e Mauris!

Craig Roy
fonte
m@main=...>>mé sempre mais curto quemain=...>>main
Lynn
Além disso, como threadDelayé específico para o GHC, você pode importá-lo de GHC.Conc
Lynn
3

Lote - 34 40 bytes

Eu amo variáveis ​​internas:

: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

Definitivamente, precisa haver algum sleepcomando no Lote em breve.

GiantTree
fonte
Não há sono embutido, mas há tempo limite . Você pode substituir o ping ...com timeout 1. Além disso, o relógio não é muito preciso ao usar ping. É melhor com timeout;)
DavidPostill
@DavidPostill obrigado pela dica, eu nunca soube que havia um comando desse tipo no Windows. :)
GiantTree
@GiantTree Você é muito bem-vindo;)
DavidPostill
Golf: remover :Ae substituir goto Apor%0
stevefestl 20/17/17
3

Python 3, 99 bytes

Desculpas se formatar o código de forma estranha, fazendo isso de um ipad. (não pergunte). Eu sei que esse código é grande, considerando algumas das outras respostas, mas ainda não vi um python, então queria adicioná-lo.

import time
import datetime
while(True):
 print(datetime.datetime.now().time())
 time.sleep(1)  
Ashwin Gupta
fonte
Você pode substituir Truepor 1e, se você colocar as linhas printe sleepna mesma linha que while(separada por ponto e vírgula), você economizará o espaço em branco.
Undergroundmonorail
@undergroundmonorail ok obrigado pela dica True / 1. Não estou acostumado a isso, já que o Java Dosent faz isso. Também não sabia que o Python tinha ponto e vírgula. Vou dar uma olhada nisso
Ashwin Gupta
3

Java, 300 166 137 125 124 bytes

Quase mais da metade, graças a VoteToClose, Paülo Ebermann e janschweizer!

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

Ungolfed:

interface A {
    static void main(String[] a) throws Exception {
        for (;; Thread.sleep(1000)) System.out.println(new java.util.Date());
    }
}
gato
fonte
11
Simplifique suas importações: em java.util.*vez das duas java.utilimportações, java.text.*pelo mesmo raciocínio. Use for(;;)para loops infinitos. Use String[]ana declaração principal. Use interface A{static void main(..., pois isso irá encurtar ainda mais. Você pode usar Exceptionmais InterruptedExceptione substituir expor e. Você também pode remover todo o texto dentro da captura, pois isso não faz nada.
Addison Crump
11
Sim, a coisa da interface é um pouco maluca - não tenho idéia do motivo pelo qual Java permitiria isso, considerando que as interfaces são projetadas especificamente para serem irrecuperáveis.
Addison Crump
11
Duas coisas: você precisa alterar a seqüência de horário para "HH: mm: ss" - a partir de agora, você está formatando "Hora: Mês: Segundo". Além disso, como você está usando um loop, você pode se livrar das declarações DateFormate das Calendarvariáveis ​​todos juntos. Você substitui o conteúdo do loop for por System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}.
Addison Crump
11
Todas as coisas que eu acabei de sugerir foram encerradas: #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
11
throws Exceptioné mais curto que uma tentativa / captura
fase
3

Perl, 99 81 75 51 40 36 29 27 bytes

sleep(print gmtime.$/);do$0
Steve
fonte
11
Você pode reduzi-lo usando em gmtimevez de localtime.
Brad Gilbert b2gills
2
Tambémprintf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
Brad Gilbert b2gills 28/11
11
gmtime."\n"forçará um contexto escalar.
primo
11
Você quase nunca precisa fazer ."\n"golfe: use .$/para salvar 2 bytes. No mínimo, use uma nova linha literal em vez de \nsalvar 1 byte.
procurando