Emette l'ora corrente


49

Sfida

È necessario emettere continuamente l'ora corrente (fino a quando non viene annullata da un interrupt), una volta al secondo, con uno dei seguenti mezzi:

  • Deve essere nel formato 24 ore o AM / PM.
    • Se è il primo, deve essere distanziato con due punti (cioè 15:47:36).
    • Se è quest'ultimo, deve essere distanziato con due punti e avere il seguito AM / PM (cioè 15:47:36)
  • Potrebbe essere estratto da Internet.
  • Potrebbe essere l'ora del sistema.
  • Deve generare qualsiasi forma di output naturalmente accessibile che supporti il ​​testo scelto.
  • L'output può contenere informazioni aggiuntive oltre al tempo, ma è necessario garantire uno e un solo output di tempo al secondo.
  • L'output continuo deve essere a un secondo di distanza - se si sceglie di attendere fino a quando il secondo cambia tra output, va bene. Se aspetti un secondo tra ogni uscita, questo è perfettamente accettabile, nonostante l'eventuale perdita di precisione.

Poiché si tratta di un catalogo, le lingue create dopo questa sfida possono competere. Si noti che deve essere presente un interprete per poter testare l'invio. È permesso (e persino incoraggiato) di scrivere questo interprete per una lingua precedentemente non implementata. A parte questo, tutte le regole standard del devono essere rispettate. Gli invii nella maggior parte delle lingue verranno calcolati in byte con una codifica preesistente appropriata (di solito UTF-8).

Catalogare

Lo snippet di stack nella parte inferiore di questo post genera il catalogo dalle risposte a) come elenco della soluzione più breve per lingua eb) come classifica generale.

Per assicurarti che la tua risposta venga visualizzata, ti preghiamo di iniziare la risposta con un titolo, usando il seguente modello Markdown:

## Language Name, N bytes

dov'è Nla dimensione del tuo invio. Se si migliora il punteggio, è possibile mantenere i vecchi punteggi nel titolo, colpendoli. Per esempio:

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

Se si desidera includere più numeri nell'intestazione (ad es. Perché il punteggio è la somma di due file o si desidera elencare separatamente le penalità del flag dell'interprete), assicurarsi che il punteggio effettivo sia l' ultimo numero nell'intestazione:

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

Puoi anche rendere il nome della lingua un collegamento che verrà quindi visualizzato nello snippet:

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


"Fino a quando non viene annullato da un interrupt" include la chiusura del programma o è necessario un meccanismo per arrestare il ciclo in esso codificato?
user81655


1
Attenzione: Tutti sleep 1basato risposta regola pausa 5: è necessario garantire uno, e solo uno, l'uscita di volte al secondo. !!
F. Hauri,

1
F. Hauri: In che senso? La Regola 6 dice "Se aspetti un secondo tra ogni uscita, va bene lo stesso."
YetiCGN,

1
@Jasen No, ma il significato di "va bene" implica che l'opzione di attesa è ancora valida, indipendentemente dall'eventuale perdita di tempo. Ho chiarito questo per te.
Addison Crump,

Risposte:


56

Minecraft 1.8.7, 7 + 8 = 15 blytes (byte + blocchi)

È coinvolto solo un blocco comandi:

xp 1 @p

L'output va alla console client in questo modo:

volte

Come parte dell'output normale.

Questo è il sistema:

il sistema

xpoffre una quantità specifica di esperienza a un giocatore specificato con la sintassi xp <amount> <player>. Sono abbastanza sicuro che questo sia il comando più piccolo che abbia un output singolare che posso ottenere, ora.


3
Non dire "19 byte" perché non hai misurato la dimensione della risposta in byte.
febbraio

6
@feersum C'è una ragione per cui sto dicendo byte, fidati di me. Questa è la cosa più vicina a un consenso per MC al momento.
Addison Crump,

4
Puoi usare i codici numerici obsoleti, vero?
Conor O'Brien,

4
Se vuoi, usa questo sistema di punteggio, 19 whatevers, ma non è 19 byte, perché non esiste una codifica precedentemente definita che ti consenta di archiviare questa soluzione in un file di 19 byte.
febbraio

1
@ CᴏɴᴏʀO'Bʀɪᴇɴ Dovrei avvolgerlo in JSON, credo. A meno che non abbia usato 1.6, ma questa è praticamente un'altra lingua.
Addison Crump,

17

JavaScript, 32 byte

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

Usa il fatto che setInterval valuta il codice. Questo non è raccomandato, ma quando è stata una preoccupazione nel code golf?

Date() restituisce l'ora e la data attuali in un formato come questo (può variare in base al sistema).

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

Funzionerebbe setInterval(alert,1e3,Date())invece?
ETHproductions

@ETHproductions Mostra sempre la stessa ora per me
ev3commander il

@ETHproduzioni nel tuo esempio Date()verranno valutate una sola volta quando crei l'intervallo
MMM

15

sh (+ orologio), 11 byte

script:

watch -n1 .

(nessuna nuova riga finale)

Produzione:

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

La quantità di spazi dipende dalla larghezza del terminale.

Testato su Debian8 e NetBSD7.


Strumento giusto per il lavoro, +1
Addison Crump,

Aspetta, conta come un linguaggio di programmazione? Puoi darmi un link a un interprete?
Addison Crump,

@VoteToClose watchè un coreutil. Il vero linguaggio è bash / sh.
Maniglia della porta

Quindi ... non dovrebbe essere Bash (distribution)così watch? @Doorknob
Addison Crump,

1
Hmm Devi usare -pswitch per non infrangere la regola , devi garantire uno, e solo uno, output di tempo al secondo. !!
F. Hauri,

15

Snap , 8 7 6 blocchi


(Sì, l'ho cambiato in MS Paint perché ero troppo pigro per fare un altro screenshot. E allora? Almeno è leggibile.) Fai
clic sullo script per eseguire l'
orologio 24 ore.


2
Amo sempre i linguaggi di programmazione grafica. : D +1
Addison Crump,

oh hey ev3! Ti conosco dai forum Snap / Scratch: P perché hai bisogno di Snap invece di Scratch, esattamente?
anOKsquirrel,

2
@anOKsquirrel Perché non ho bisogno di nidificare tutti quei blocchi di join.
ev3commander,

Non dovrebbe leggere 9:21:08?
Luca

@Luke Come mostrato dalla risposta TI-BASIC, il tempo senza lo zero iniziale in un'uscita va bene. È leggibile dall'uomo e chiaro che ore sono.
Addison Crump,

11

Python 2, 47 byte

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

Nessun link online perché ideone va in timeout (huehuehue) prima di stampare qualsiasi cosa.

Grazie a @xsot per il while[sleep(1)]trucco e il ctimetrucco.

Stampa la data e l'ora correnti in questo modo: Fri Nov 27 21:23:02 2015


2
/ me batte lentamente le mani al gioco di parole. Mego molto divertente. ; D
Addison Crump,


sleep 1in base alla regola di interruzione della risposta 5: è necessario garantire uno, e solo uno, output di tempo al secondo.
F. Hauri,

@ F.Hauri sleep 1fa sospendere il thread corrente per esattamente un secondo. È conforme alle regole.
Mego

1
@ F.Hauri Considerando che la sfida autore stesso utilizza l'equivalente di sleep(1)sia la sua soluzione AppleScript e la sua soluzione bash Vitsy + , è chiaramente accettabile.
Mego

9

Perl, riga di comando, 24 byte

sleep(say)while$_=gmtime

Questo deve essere eseguito dalla riga di comando, come perl -E'sleep(say)while$_=gmtime'(su Windows, utilizzare invece virgolette doppie). La data verrà emessa insieme all'ora, che sembra essere consentita .


Perl, 25 byte

sleep print$/.gmtime;do$0

In un contesto scalare, gmtimerestituirà una stringa simile a Sat Nov 28 10:23:05 2015. Il risultato di print, sempre 1, viene utilizzato come parametro per sleep. do$0viene utilizzato per eseguire nuovamente lo script, al termine del timer.


2
Come evidenziato dalla soluzione e dai commenti AppleScript di @ VoteToClose , non è necessario estrarre il tempo.
Mego

1
Un'altra soluzione 24 byte: {sleep say~~gmtime;redo}.
Denis Ibaev,

sleep 1in base alla regola di interruzione della risposta 5: è necessario garantire uno, e solo uno, output di tempo al secondo .
F. Hauri,

@ F.Hauri la regola è stata aggiunta dopo la pubblicazione di questo post.
primo

9

Javascript ES6, 43 39 byte

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

Funziona con le mie attuali impostazioni dell'ora (che non sono state modificate da un po 'di tempo, grazie), almeno.

4 byte salvati da Conor O'Brien.


l'allerta è più breve?
Maltysen,

8
@Maltysen Penso che in molti browser devi chiudere una finestra di avviso per vedere quella successiva.
Flawr,

@Maltysen L'ho provato, in qualche modo
incasinato

1
Non è necessario .toTimeString()in Chrome e FF.
Bob,

1
Penso che puoi sostituire new Date()conDate()
Conor O'Brien il

8

Arcyóu , 27 byte

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

Ho dovuto mettere insieme due nuove funzioni per questa sfida, zze st.

pn: Esattamente come quello di Lisp progn.

zz: Collegamento diretto a Python time.sleep.

st: Collegamento diretto a Python time.strftime.

Normalmente, le virgolette sarebbero necessarie intorno alla stringa di formato, ma poiché non ci sono spazi, viene analizzato come un simbolo. L'interprete valuta i simboli indefiniti come se stessi, quindi otteniamo una stringa.


1
Vorrei votare in alto, ma non mi è rimasto alcun voto. +1; c E bei aggiornamenti. : D
Addison Crump,

7

Bash, 51 31 24 21 20 byte

Grazie a @quartata per alcuni commenti molto utili. Grazie @Dennis per chiarimenti e per tagliare ancora più byte. Grazie @VoteToClose per aver chiarito le regole (che a quanto pare non sono bravo a leggere) riducendo ulteriormente i byte.

datevisualizza la data completa con un orologio di 24 ore. sleep 1dorme per un secondo. exec $0esegue il loop della sceneggiatura all'infinito.

date;sleep 1;exec $0

Non hai bisogno del shebang.
uno spaghetto il

Inoltre, penso che tu possa sostituire il truecon il sleep 1poiché sleeprestituisce a 1.
uno spaghetto il

date +%T;sleep 1;exec $0è un po 'più corto. @quartata Nitpicking: sleepha il codice di uscita zero, motivo per cui whilecontinua.
Dennis,

3
Oh sono un idiota
uno spaghetto il

2
Non è necessario lo spazio dopo date, quindi si tratta di soli 20 byte.
ThisSuitIsBlackNon

6

Befunge 98, 53 byte

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

Appunti:

  1. Questo programma non azzera i numeri che stampa.
  2. Questo programma stampa uno spazio e quindi un carattere backspace dopo ogni numero, poiché il .comando stampa uno spazio implicito alla fine.
  3. La dimensione dello stack in questo programma aumenta ogni secondo e quindi alla fine la memoria si esaurirà.
  4. Questo programma sovrascriverà la volta precedente quando ne stampa una nuova. Per farlo stampare ogni volta su una nuova riga, cambia il dnella prima riga in una

Perché è necessaria la stringa "TIME"? C'è un modo per afferrarlo? (Non ne ero a conoscenza)
Addison Crump,

"EMIT"4(L'all'inizio del programma sta dicendo l'interprete per caricare TIMEl'impronte digitali, che permette alle H, Me Sle istruzioni. (No, non emette il numero 4).
pepery il

Che è impressionante . Non ho nemmeno pensato che molti esolang avrebbero fatto questo, +1.
Addison Crump,

@VoteToClose Befunge 98 ha anche un'istruzione per eseguire un programma arbritrary spuntato dallo stack.
pepery il

1
scappa per imparare questa lingua Mi scusi ...
Addison Crump,

6

mIRC 7.49 20 16 byte

/timer 0 1 $time

Dove possiamo provarlo?
Addison Crump,

Devi scaricare mIRC è un client IRC shareware. Puoi scaricarlo da: mirc.com anche dal momento che la risposta di cui sopra sayti utilizza dovrà connetterti a un server e quindi unirti a un canale. altri saggi che useresti echoinvece di say. mIRC ha il suo linguaggio di script mSL (mIRC scripting language)
onkarjit

5

Tasto di scelta automatica, 50 byte

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

Appunti:

  1. Richiede di tenere premuto xper l'output continuo.
  2. Rimuovere il dito xper interrompere e terminare l'output.
  3. L'output è in formato 24 ore.

2
Potresti, per qualche byte in più, inserirlo in una descrizione comandi in modo che non richieda all'utente di trattenerlo x.
Michelfrancis Bustillos,

5

C (su Linux x64), 179 177 175 168 159 byte

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

Testato su Linux e probabilmente funziona solo su Linux x64 (x32 potrebbe funzionare, ma altre piattaforme probabilmente non funzioneranno).

La differenza principale tra questo programma e l'altro programma C pubblicato è l'uso di chiamate di funzione esclusive di Linux, che, sebbene una pratica terribile per il software reale, fa risparmiare parecchi byte ... se si ignorano tutti gli avvisi del compilatore.


Benvenuti in PPCG! A meno che non mi sbagli, credo che tu possa rimuovere lo spazio tra #includee <...>. Inoltre, puoi usare 1e6invece di 1000000?
Addison Crump,

@VoteToClose Avevi ragione sugli spazi in #includes. Non sembra usleep () accetta 1e6, tuttavia - in base alla velocità con cui inizia a sputare i timestamp, lo interpreta semplicemente come 1.
Gamerdog

¯ \ _ (ツ) _ / ¯ Neanche io conosco C. Lascerò i professionisti a questo. Bentornato, ho un voto positivo. : D
Addison Crump,

Ah, un'altra cosa: non è necessario tagliare la stringa solo per l'ora, quindi è possibile generare l'intera data e ora, purché contenga la stringa di ora richiesta.
Addison Crump,

2
È possibile utilizzare %Tcome specifiche del formato in strftime.
Mego

5

Jolf , 14 8 7 byte

Barrato 14 è un 1 colpito? No, non prenderà mai piede;)

Provalo qui! Fai clic su Esegui, non fare clic su nient'altro ^ _ ^ la pagina è altamente ... esplosiva. Sì. Sistema di output fisso con aggiornamento.

TaD#`~2

(Ho aggiunto alcune costanti e ~1di ~4essere poteri di 10.)

Spiegazione

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

4
Qualcuno dovrebbe creare YAJSGV (Yet Another JavaScript Golfing Variant).
intrepidcoder,

Questo sembra stampare molto più del semplice tempo.
Dennis,

1
@Dennis Ho pensato che andasse bene come per altre soluzioni
Conor O'Brien,

Mio male, avevo letto solo la tua e la risposta di Bash.
Dennis,

@Dennis Non è un problema ^ _ ^
Conor O'Brien,

5

Dyalog APL , 27 18 16 byte

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

Provalo online!

⎕TSYMD hmst
':',¨prepend: per ogni
nuova istruzione
⎕DL 1attendere un secondo e restituire il tempo di attesa effettivo; 1,0 secondi di
conteggio del tempo di attesa effettivo, dando 1
linea alla linea (1 = questa linea)


4

Perl 6 , 29 byte

Il modo giusto per farlo:

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
…

La versione golfizzata

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
…

Poiché l'output non deve essere limitato al solo tempo, posso renderlo un po 'più breve.

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

R, 38 byte

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

Ciò genera l'ora corrente nel seguente formato:

[1] "2015-11-28 07:34:01 CET"

4

Powershell, 19 byte

for(){date;sleep 1}

Come da allora è stato sottolineato che l'output deve semplicemente includere l'hh: mm: ss è possibile ridurrefor(){date;sleep 1}
steve

4

PHP, 37 byte

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

Emette l'ora formattata del server e imposta l'aggiornamento della pagina ogni secondo.

Certo, dipende dalla tua connessione Internet e dalla rapidità di risposta del tuo server :)

dimostrazione


No, niente rinfrescante:Warning: Cannot modify header information - headers already sent
Martijn,

@Martijn Non ho idea di cosa si possa pasticciare, perché funziona per me :)
nicael

Rimuoverò il downvote come beneficio del dubbio, ma questo funziona esattamente una volta per me. Ho provato su due diversi server regolari.
Martijn,

2
Dipende dall'attivazione del buffering dell'output.
Andrea,

<?=header('refresh:1').date('G:i:s');dovrebbe funzionare con entrambe le impostazioni di bffering dell'output.
Jasen,

4

VBA, 69 byte

Ottenere il tempo è facile, now()emettendo solo ogni 1 secondo .... MOLTO più dettagliato.

Questo è il modo "giusto" di attendere 1 secondo in VBA. 78 byte

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

O se vuoi tagliare alcuni angoli e avere ragione l'86% delle volte è abbastanza buono 63 byte
aggiungendo un SigFig ti porta al 95% di precisione e un terzo ti porterà al 99,36%

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

Se si desidera ottenere il metodo sopra al 100%, sono necessari 69 byte (1/86400)

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

Tutti questi metodi inciamperebbero in un balzo in secondo luogo perché non aspettano 1 secondo, ma aspettano fino a 1 secondo. A mezzanotte, quando gli orologi cadono indietro di un'ora, questo orologio si fermerà per 1 ora e poi riprenderà da dove si era interrotto.

VBA consente il metodo Sleep ma il tuo byte couter è in rovina. 97 byte

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

3

JavaScript, 47 38 35 byte

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

Spiegazione

Controlla continuamente se il tempo è cambiato, quindi alertse è cambiato .

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

Non devi semplicemente ottenere la stringa temporale. ; D Finché è lì da qualche parte.
Addison Crump,

@VoteToClose Oh true!
user81655,

Non pensare di aver bisogno di +"", come senza new, Date()restituisce una stringa.
ETHproductions

@ETHproductions Ah, sì, che è stato lasciato lì da quando l'ha usato new. Grazie per averlo colto!
user81655

3

AppleScript, 51 35 byte

ripetere
registra la data corrente
ritardo 1
fine

Abbastanza pericoloso ovvio. Stampa la data corrente, che contiene l'ora, ritarda un secondo, quindi continua.


1
Quindi aspetta, è consentito stampare la data corrente e l'ora?
uno spaghetto il

@quartata Sì, qualsiasi concatenazione con il tempo, purché il tempo sia continuamente emesso e garantito per essere emesso, va bene.
Addison Crump,

il ritardo 1 fa cosa? pausa per 1000000000 ns?
Jasen,

@Jasen È corretto.
Addison Crump,


3

Dyalog APL, 36 byte

Non molto breve questa volta.

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

Questo genera un tempo di 24 ore, ovvero:

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

Spiegazione:

  • {... }1: definisci una funzione e chiamala (l'argomento viene ignorato, ma abbiamo bisogno della funzione per chiamarla ricorsivamente)
    • ⎕TS: una funzione di sistema che restituisce la data e l'ora correnti, nel formato anno - mese - giorno - ora - minuto - secondo - millisecondo . ( ⎕TS= t ime s tamp)
    • 3↑3↓: rilascia i primi 3 elementi (es. anno - mese - giorno) e poi prendi i primi 3 elementi rimasti (ora - minuto - secondo).
    • '⊂:⊃,ZI2'⎕FMT: formatta ogni numero come un intero di due cifre ( I2) con zeri iniziali ( Z), preceduto da due punti ( ⊂:⊃). (Ciò si traduce in una matrice.)
    • : Visualizza tutti gli elementi nella matrice, in ordine di riga. (Questo dà un vettore, in questo caso una stringa.)
    • 1↓: rilascia il primo personaggio (che è un extra :)
    • ⎕←: emettilo
    • ⎕DL 1: quindi attendi un secondo ( ⎕DL= d e l ay)
    • : chiama la funzione in modo ricorsivo

{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1per 28 byte, è sufficiente come da OP .
Adám,

Le nuove regole consentono l'output di immondizia e spazi casuali, in modo da poter sbarazzarsi di molto.
Adám,


3

Haskell, 98 96 85 byte

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

Versione alternativa usando do notation:

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

Ottiene l'ora corrente getCurrentTimedalla Data.Timelibreria, quindi la inserisce print, attende 1.000.000 di microsecondi (1 secondo) e si chiama da sola.

Grazie a nimi e mauris!


m@main=...>>mè sempre più corto dimain=...>>main
Lynn il

Inoltre, poiché threadDelayè specifico per GHC, è possibile importarlo da GHC.Conc
Lynn il

3

Lotto - 34 40 byte

Adoro le variabili integrate:

: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

Sicuramente ci deve essere qualche sleepcomando in Batch in qualunque momento presto.


Nessun sonno incorporato ma c'è timeout . È possibile sostituire il ping ...con timeout 1. Inoltre, l'orologio non è molto preciso durante l'utilizzo ping. È meglio con timeout;)
DavidPostill

@DavidPostill grazie per il suggerimento, non ho mai saputo che ci fosse un tale comando in Windows. :)
GiantTree

@GiantTree Sei il benvenuto;)
DavidPostill

Golf: rimuovere :Ae sostituire goto Acon%0
stevefestl

3

Python 3, 99 byte

Mi scuso se formatta il codice strano, facendo questo da un iPad. (non chiedere). So che questo codice è grande considerando alcune delle altre risposte, ma non ne ho ancora visto uno di Python, quindi ho voluto aggiungerlo.

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

Puoi sostituirlo Truecon 1, e se metti le linee printe sleepsulla stessa linea del while(separato da un punto e virgola) ti fa risparmiare lo spazio bianco.
undergroundmonorail

@undergroundmonorail ok grazie per il suggerimento True / 1. Non ci sono abituato dal momento che Java Dosent lo fa. Non sapevo nemmeno che Python avesse dei punti e virgola. Ci penserò su
Ashwin Gupta,

3

Java, 300 166 137 125 124 byte

Quasi più che dimezzato grazie 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());
    }
}

1
Semplifica le tue importazioni: java.util.*anziché le due java.utilimportazioni, java.text.*per lo stesso ragionamento. Utilizzare for(;;)per loop infiniti. Utilizzare String[]anella dichiarazione principale. Usa interface A{static void main(..., in quanto ciò lo accorcerà ancora di più. È possibile utilizzare Exceptionsopra InterruptedException, e si può sostituire excon e. Puoi anche rimuovere tutto il testo all'interno della cattura, poiché ciò non fa comunque nulla.
Addison Crump,

1
Sì, la cosa dell'interfaccia è un po 'stravagante - non ho idea del perché Java avrebbe lasciato che fosse una cosa, considerando che le interfacce sono specificamente progettate per essere incontrollabili.
Addison Crump,

1
Due cose: devi cambiare la stringa temporale in "HH: mm: ss" - per ora, stai formattando "Ora: Mese: Secondo". Inoltre, poiché stai usando un ciclo, puoi sbarazzarti delle dichiarazioni delle variabili DateFormate Calendartutte insieme. Sostituisci il contenuto del ciclo for con System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}.
Addison Crump,

1
Tutte le cose che ho appena suggerito, concluse: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è più breve di un tentativo / cattura
fase

3

Perl, 99 81 75 51 40 36 29 27 byte

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

1
Puoi accorciarlo usando gmtimeinvece di localtime.
Brad Gilbert b2gills il

2
Inoltreprintf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
Brad Gilbert b2gills il

1
gmtime."\n"forzerà un contesto scalare.
primo

1
Non dovresti quasi mai fare ."\n"nel golf: usa .$/per salvare 2 byte. Per lo meno, usa una nuova riga letterale invece di \nsalvare 1 byte.
ThisSuitIsBlackNon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.