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 código-golfe 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 N
está 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
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. !!Respostas:
Minecraft 1.8.7, 7 + 8 = 15 blytes (bytes + blocos)
Apenas um bloco de comando envolvido:
A saída vai para o console do cliente da seguinte maneira:
Como parte da saída normal.
Este é o sistema:
xp
fornece uma quantidade especificada de experiência a um jogador especificado com a sintaxexp <amount> <player>
. Tenho certeza de que este é o menor comando que possui uma saída singular que posso obter agora.fonte
JavaScript, 32 bytes
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).fonte
setInterval(alert,1e3,Date())
vez disso, funcionaria?Date()
será avaliado apenas uma vez quando você criar o intervalosh (+ relógio), 11 bytes
Roteiro:
(sem nova linha à direita)
Resultado:
A quantidade de espaços depende da largura do terminal.
Testado no Debian8 e NetBSD7.
fonte
watch
é um coreutil. O idioma real é bash / sh.Bash (distribution)
, não éwatch
? @Doorknob-p
opção para não violar a regra. Você deve garantir uma e apenas uma saída de tempo por segundo. !!Snap ,
876 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.
fonte
9:21:08
?Python 2, 47 bytes
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 peloctime
truque.Imprime a data e hora atuais da seguinte forma:
Fri Nov 27 21:23:02 2015
fonte
sleep 1
regra 5 de quebra de resposta baseada: você deve garantir uma, e apenas uma, saída de tempo por segundo.sleep 1
faz com que o encadeamento atual fique em repouso por exatamente um segundo. Está em conformidade com as regras.sleep(1)
em sua solução AppleScript e em sua solução Vitsy + bash , é claramente aceitável.Perl, linha de comando, 24 bytes
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
Em um contexto escalar,
gmtime
retornará uma sequência semelhante aSat Nov 28 10:23:05 2015
. O resultado deprint
, sempre 1, é usado como parâmetro parasleep
.do$0
é usado para executar o script novamente, após o término do cronômetro.fonte
{sleep say~~gmtime;redo}
.sleep 1
regra de quebra de resposta baseada em 5: você deve garantir uma, e apenas uma, saída de tempo por segundo .Javascript ES6, 43 39 bytes
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.
fonte
.toTimeString()
no Chrome e no FF.new Date()
porDate()
Arcyóu , 27 bytes
Eu tive que juntar duas novas funções para esse desafio,
zz
est
.pn
: Exatamente como o Lispprogn
.zz
: Link direto para o Pythontime.sleep
.st
: Link direto para o Pythontime.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.
fonte
Bash,
5131242120 bytesObrigado 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.
date
exibe a data completa com um relógio de 24 horas.sleep 1
dorme por um segundo.exec $0
circunda o script infinitamente.fonte
true
com osleep 1
desde quesleep
retorna um1
.date +%T;sleep 1;exec $0
é um pouco mais curto. @ Quartata Nitpicking:sleep
tem o código de saída zero, e é por isso quewhile
continua.date
, portanto, são apenas 20 bytes.Entre 98, 53 bytes
Notas:
.
comando imprime um espaço implícito no final.d
a primeira linha para umaa
fonte
"EMIT"4(
no início do programa está dizendo a intérprete para carregar aTIME
impressão digital, que permite que osH
,M
eS
instruções. (Não, não emite o número 4).mIRC 7.49
2016 bytesfonte
say
você, precisará se conectar a um servidor e ingressar em um canal. caso contrário, você usaria emecho
vez desay
. mIRC tem a sua própria linguagem de script MSL (mIRC linguagem de script)AutoHotkey, 50 bytes
Notas:
fonte
x
.C (no Linux x64),
179177175168159 bytesUngolfed:
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.
fonte
#include
e<...>
. Além disso, você pode usar em1e6
vez de1000000
?#include
s. 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. #%T
como a especificação de formato emstrftime
.Jolf ,
1487 bytesRiscado 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.
(Eu adicionei algumas constantes, e
~1
que~4
são potências de10
.)Explicação
fonte
Dyalog APL ,
27 1816 bytesExperimente online!
⎕TS
YMD hmst prepend':',¨
: para cada⋄
nova instrução,⎕DL 1
aguarde 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)fonte
Perl 6 , 29 bytes
A maneira correta de fazer isso:
A versão golfada
Como a saída não precisa ser restrita apenas ao tempo, posso torná-la um pouco menor.
fonte
R, 38 bytes
Isso exibe a hora atual no seguinte formato:
fonte
Powershell, 19 bytes
fonte
for(){date;sleep 1}
PHP, 37 bytes
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
fonte
Warning: Cannot modify header information - headers already sent
<?=header('refresh:1').date('G:i:s');
deve funcionar com a configuração de buffer de saída.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
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%
Se você deseja obter o método acima para 100%, precisará de 69 bytes
(1/86400)
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
fonte
JavaScript,
473835 bytesExplicação
Verifica continuamente se o tempo mudou e,
alert
se houver.fonte
+""
, como semnew
,Date()
retorna uma string.new
. Obrigado por capturar isso!AppleScript,
5135 bytesBastante óbvio. Imprime a data atual, que contém a hora, atrasa um segundo e continua.
fonte
, 13 caracteres / 25 bytes
Try it here(Firefox only).
Isso é surpreendentemente legível.
fonte
Dyalog APL, 36 bytes
Não é muito curto desta vez.
Isso gera 24 horas, ou seja:
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 recursivamentefonte
{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1
para 28 bytes, é suficiente conforme o OP .QBasic, 18 bytes
fonte
Haskell,
989685 bytesVersão alternativa usando a notação:
Obtém o horário atual
getCurrentTime
daData.Time
biblioteca e, em seguida, canaliza para eleprint
, espera 1.000.000 de microssegundos (1 segundo) e chama a si próprio.Graças a nimi e Mauris!
fonte
m@main=...>>m
é sempre mais curto quemain=...>>main
threadDelay
é específico para o GHC, você pode importá-lo deGHC.Conc
Lote - 34
40bytesEu amo variáveis internas:
Definitivamente, precisa haver algum
sleep
comando no Lote em breve.fonte
ping ...
comtimeout 1
. Além disso, o relógio não é muito preciso ao usarping
. É melhor comtimeout
;):A
e substituirgoto A
por%0
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.
fonte
True
por1
e, se você colocar as linhasprint
esleep
na mesma linha quewhile
(separada por ponto e vírgula), você economizará o espaço em branco.Java,
300166137125124 bytesQuasemais da metade, graças a VoteToClose, Paülo Ebermann e janschweizer!Ungolfed:
fonte
java.util.*
vez das duasjava.util
importações,java.text.*
pelo mesmo raciocínio. Usefor(;;)
para loops infinitos. UseString[]a
na declaração principal. Useinterface A{static void main(...
, pois isso irá encurtar ainda mais. Você pode usarException
maisInterruptedException
e substituirex
pore
. Você também pode remover todo o texto dentro da captura, pois isso não faz nada.DateFormat
e dasCalendar
variáveis todos juntos. Você substitui o conteúdo do loop for porSystem.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
é mais curto que uma tentativa / capturaPerl,
9981755140362927 bytesfonte
gmtime
vez delocaltime
.printf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
gmtime."\n"
forçará um contexto escalar.."\n"
golfe: use.$/
para salvar 2 bytes. No mínimo, use uma nova linha literal em vez de\n
salvar 1 byte.