Salida de la hora actual

49

Desafío

Debe emitir el tiempo actual continuamente (hasta que lo cancele una interrupción), una vez por segundo, por cualquiera de los siguientes medios:

  • Debe estar en formato de 24 horas o AM / PM.
    • Si es el primero, debe estar separado por dos puntos (es decir, 15:47:36).
    • Si es el último, debe estar separado por dos puntos y tener el siguiente AM / PM (es decir, 3:47:36 PM)
  • Puede ser sacado de internet.
  • Puede ser la hora del sistema.
  • Debe generar cualquier forma de salida accesible de forma natural que admita el texto que elija.
  • La salida puede tener información adicional aparte del tiempo en ella, pero debe garantizar una, y solo una, salida de tiempo por segundo.
  • La salida continua debe estar separada por un segundo; si elige esperar hasta que el segundo cambie entre salidas, está bien. Si espera un segundo entre cada salida, eso es perfectamente aceptable, a pesar de la eventual pérdida de precisión.

Como se trata de un catálogo, los idiomas creados después de este desafío pueden competir. Tenga en cuenta que debe haber un intérprete para que se pueda probar el envío. Está permitido (e incluso alentado) escribir este intérprete usted mismo para un lenguaje previamente no implementado. Aparte de eso, se deben obedecer todas las reglas estándar del de . Las presentaciones en la mayoría de los idiomas se puntuarán en bytes en una codificación preexistente apropiada (generalmente UTF-8).

Catalogar

El Fragmento de pila al final de esta publicación genera el catálogo a partir de las respuestas a) como una lista de la solución más corta por idioma yb) como una tabla de clasificación general.

Para asegurarse de que su respuesta se muestre, comience con un título, usando la siguiente plantilla de Markdown:

## Language Name, N bytes

¿Dónde Nestá el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:

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

Si desea incluir varios números en su encabezado (por ejemplo, porque su puntaje es la suma de dos archivos o desea enumerar las penalizaciones de la bandera del intérprete por separado), asegúrese de que el puntaje real sea el último número en el encabezado:

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

También puede hacer que el nombre del idioma sea un enlace que luego aparecerá en el fragmento:

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

Addison Crump
fuente
¿"Hasta que sea cancelado por una interrupción" incluye cerrar el programa o necesita un mecanismo para detener el ciclo codificado en él?
usuario81655
1
Advertencia: todas sleep 1las reglas basadas en la ruptura de la respuesta 5: debe garantizar una, y solo una, salida de tiempo por segundo. !!
F. Hauri
1
F. Hauri: ¿Cómo es eso? La regla 6 dice "Si espera un segundo entre cada salida, también está bien".
YetiCGN
1
@Jasen No, pero el significado de "eso está bien" implica que la opción de espera sigue siendo válida, independientemente de la eventual pérdida de tiempo. He aclarado esto para ti.
Addison Crump

Respuestas:

56

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

Solo un bloque de comando involucrado:

xp 1 @p

La salida va a la consola del cliente así:

veces

Como parte de la salida normal.

Este es el sistema:

el sistema

xpda una cantidad específica de experiencia a un jugador específico con la sintaxis xp <amount> <player>. Estoy bastante seguro de que este es el comando más pequeño que tiene una salida singular que puedo obtener, ahora.

Addison Crump
fuente
3
No diga "19 bytes" porque no midió el tamaño de su respuesta en bytes.
fiesta
66
@feersum Hay una razón para que yo diga bytes, confía en mí. Esto es lo más cercano a un consenso para MC a partir de ahora.
Addison Crump
44
Puedes usar los códigos de números obsoletos, ¿no?
Conor O'Brien
44
Use este sistema de puntuación si lo desea, 19 en total, pero no tiene 19 bytes, porque no hay una codificación definida previamente que le permita almacenar esta solución en un archivo de 19 bytes.
fiesta
1
@ CᴏɴᴏʀO'Bʀɪᴇɴ Tendría que envolverlo en JSON, creo. A menos que use 1.6, pero ese es prácticamente otro idioma.
Addison Crump
17

JavaScript, 32 bytes

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

Utiliza el hecho de que setInterval evalúa el código. Esto no se recomienda, pero ¿cuándo fue eso una preocupación en el código de golf?

Date() devuelve la hora y fecha actuales en un formato como este (puede variar según el sistema).

 Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)
codificador intrépido
fuente
¿ setInterval(alert,1e3,Date())Funcionaría en su lugar?
ETHproductions
@ETHproductions Siempre muestra la misma hora para mí
ev3commander
@ETHproductions en su ejemplo Date()solo se evaluará una vez cuando cree el intervalo
MMM
15

sh (+ reloj), 11 bytes

Guión:

watch -n1 .

(sin línea nueva)

Salida:

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

La cantidad de espacios depende del ancho del terminal.

Probado en Debian8 y NetBSD7.

yeti
fuente
Herramienta adecuada para el trabajo, +1
Addison Crump
Espera, ¿esto cuenta como un lenguaje de programación? ¿Me puede dar un enlace a un intérprete?
Addison Crump
@VoteToClose watches un coreutil. El lenguaje real es bash / sh.
Pomo de la puerta
Entonces ... ¿no debería ser esto Bash (distribution), no watch? @Doorknob
Addison Crump
1
Hmm. Debe usar el -pinterruptor para no romper la regla . Debe garantizar una, y solo una, salida de tiempo por segundo. !!
F. Hauri
15

Snap , 8 7 6 bloques


(Sí, lo cambié en MS Paint porque era demasiado flojo para hacer otra captura de pantalla. ¿Y qué? Al menos es legible).
Haga clic en el script para ejecutar el
reloj de 24 horas.

ev3commander
fuente
2
Siempre amo los lenguajes de programación gráfica. : D +1
Addison Crump
oh hola ev3! Te conozco de los foros de Snap / Scratch: P ¿por qué necesitas Snap en lugar de Scratch, exactamente?
anOKsquirrel
2
@anOKsquirrel Porque no necesito anidar todos esos bloques de unión.
ev3commander
¿No debería eso leer 9:21:08?
Lucas
@Luke Como se muestra en la respuesta de TI-BASIC, el tiempo sin el cero inicial en una salida está bien. Es legible por humanos y claro qué hora es.
Addison Crump
11

Python 2, 47 bytes

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

Sin enlace en línea porque ideone agota el tiempo de espera (huehuehue) antes de imprimir cualquier cosa

Gracias a @xsot por el while[sleep(1)]truco y el ctimetruco.

Imprime la fecha y hora actuales de esta manera: Fri Nov 27 21:23:02 2015

Mego
fuente
2
/ yo aplaude lentamente al juego de palabras. Muy divertido Mego. ; D
Addison Crump
He publicado su solución para Python 3
jfs
sleep 1respuesta basada en la regla 5: debe garantizar una, y solo una, salida de tiempo por segundo.
F. Hauri
@ F.Hauri sleep 1hace que el hilo actual duerma exactamente un segundo. Cumple con las reglas.
Mego
1
@ F.Hauri Teniendo en cuenta que el propio autor desafío utiliza el equivalente a sleep(1)tanto en su solución de AppleScript y su solución fiesta Vitsy + , está claro que es aceptable.
Mego
9

Perl, línea de comando, 24 bytes

sleep(say)while$_=gmtime

Esto debe ejecutarse desde la línea de comandos, como perl -E'sleep(say)while$_=gmtime'(en Windows, utilice comillas dobles). La fecha se mostrará junto con la hora, que parece estar permitida .


Perl, 25 bytes

sleep print$/.gmtime;do$0

En un contexto escalar, gmtimedevolverá una cadena similar a Sat Nov 28 10:23:05 2015. El resultado de print, siempre 1, se utiliza como parámetro para sleep. do$0se utiliza para ejecutar el script nuevamente, una vez que el temporizador ha finalizado.

primo
fuente
2
Como lo demuestra la solución y el comentario de AppleScript de @ VoteToClose , no necesita extraer el tiempo.
Mego
1
Otra solución de 24 bytes: {sleep say~~gmtime;redo}.
Denis Ibaev
sleep 1respuesta basada en la regla 5: debe garantizar una, y solo una, salida de tiempo por segundo .
F. Hauri
@ F.Hauri, la regla se agregó después de realizar esta publicación.
primo
9

Javascript ES6, 43 39 bytes

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

Funciona con mi configuración de tiempo actual (que no se ha cambiado durante algún tiempo, gracias), al menos.

4 bytes guardados por Conor O'Brien.

SuperJedi224
fuente
alerta es más corta?
Maltysen
8
@Maltysen Creo que en muchos navegadores tienes que cerrar una ventana de alerta para ver la siguiente.
falla
@Maltysen Lo intenté, arruina el intervalo de alguna manera
SuperJedi224
1
No necesitas .toTimeString()en Chrome y FF.
Bob
1
Creo que puede reemplazar new Date()conDate()
Conor O'Brien
8

Arcyóu , 27 bytes

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

Tuve que reunir dos nuevas funciones para este desafío, zzy st.

pn: Exactamente como el de Lisp progn.

zz: Enlace directo a Python time.sleep.

st: Enlace directo a Python time.strftime.

Normalmente, las comillas serían necesarias alrededor de la cadena de formato, pero como no hay espacios, se analiza como un símbolo. El intérprete evalúa los símbolos indefinidos como ellos mismos, por lo que obtenemos una cadena.

bkul
fuente
1
Votaría, pero no me quedan votos. +1; c Y buenas actualizaciones. : D
Addison Crump
7

Bash, 51 31 24 21 20 bytes

Gracias a @quartata por algunos comentarios muy útiles. Gracias @Dennis por las aclaraciones y por cortar aún más bytes. Gracias @VoteToClose por aclarar las reglas (que aparentemente soy malo para leer) reduciendo aún más los bytes.

datemuestra la fecha completa con un reloj de 24 horas. sleep 1duerme por un segundo exec $0repite el guión infinitamente.

date;sleep 1;exec $0
Liam
fuente
No necesitas el shebang.
un espagueti
Además, creo que puede reemplazar el truecon el sleep 1ya que sleepdevuelve a 1.
un espagueti
date +%T;sleep 1;exec $0Es un poco más corto. @quartata Nitpicking: sleeptiene el código de salida cero, por lo que whilecontinúa.
Dennis
3
Oh, soy un idiota
un espagueti
2
No necesita el espacio después date, por lo que solo son 20 bytes.
ThisSuitIsBlackNot
6

Befunge 98, 53 bytes

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

Notas:

  1. Este programa no pone a cero los números que imprime.
  2. Este programa imprime un espacio y luego un carácter de retroceso después de cada número, ya que el .comando imprime un espacio implícito al final.
  3. El tamaño de la pila en este programa crece cada segundo y, por lo tanto, eventualmente se quedará sin memoria.
  4. Este programa sobrescribirá la vez anterior cuando imprima uno nuevo. Para que se imprima cada vez en una nueva línea, cambie el dde la primera línea aa
pppery
fuente
¿Por qué es necesaria la cadena "TIME"? ¿Hay alguna forma de que lo esté agarrando? (No sabía sobre esto)
Addison Crump
El "EMIT"4(al principio del programa, le comunica al intérprete para cargar la TIMEhuella digital, que permite a los H, My Slas instrucciones. (No, no emite el número 4).
pppery
Eso es asombroso . Nunca pensé que muchos esolangs harían esto, +1.
Addison Crump
@VoteToClose Befunge 98 incluso tiene una instrucción para ejecutar un programa arbitrario extraído de la pila.
pppery
1
corre para aprender este idioma Disculpe ...
Addison Crump
6

mIRC 7.49 20 16 Bytes

/timer 0 1 $time
onkarjit
fuente
¿Dónde podemos probar esto?
Addison Crump
Tienes que descargar mIRC, es un cliente IRC shareware. También puede descargarlo desde: mirc.com , ya que la respuesta anterior hace uso de saylo que necesitará para conectarse a un servidor y luego unirse a un canal. de lo contrario usarías en echolugar de say. mIRC tiene su propio lenguaje de scripting mSL (mIRC scripting language)
onkarjit
5

AutoHotkey, 50 bytes

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

Notas:

  1. Requiere que lo sostengas xpara una salida continua.
  2. Retire su dedo de xpara interrumpir y finalizar la salida.
  3. La salida está en formato de 24 horas.
error incluso
fuente
2
Podría, por unos pocos bytes adicionales, poner eso en una información sobre herramientas para que no requiera que el usuario lo mantenga x.
Michelfrancis Bustillos
5

C (en 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);}}

Sin golf:

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

Solo probado y probablemente solo funciona en linux x64 (x32 podría funcionar, pero otras plataformas probablemente no).

La principal diferencia entre este programa y el otro programa C publicado es el uso de llamadas a funciones exclusivas de Linux, que, aunque es una práctica terrible para el software real, ahorra bastantes bytes ... si ignora todas las advertencias del compilador.

Gamerdog
fuente
Bienvenido a PPCG! A menos que me equivoque, creo que puedes eliminar el espacio entre #includey <...>. Además, ¿puedes usar en 1e6lugar de 1000000?
Addison Crump
@VoteToClose Tenías razón sobre los espacios en el #includes. Sin embargo, no parece que usleep () acepte 1e6; según lo rápido que comienza a escupir marcas de tiempo, solo lo interpreta como 1.
Gamerdog
¯ \ _ (ツ) _ / ¯ Realmente tampoco sé C. Dejaré que los profesionales hagan eso. Bienvenido de nuevo, tenga un voto positivo. : D
Addison Crump
Ah, otra cosa: no tiene que cortar la cadena solo por el tiempo, por lo que solo puede generar la fecha y hora completa, siempre que tenga la cadena de tiempo requerida.
Addison Crump
2
Puede usar %Tcomo la especificación de formato en strftime.
Mego
5

Jolf , 14 8 7 bytes

Tachado 14 es un 1 marcado? No, nunca se dará cuenta;)

Pruébalo aquí! Haga clic en ejecutar, no haga clic en nada más ^ _ ^ la página es muy ... explosiva. Si. Sistema de salida fijo con actualización.

TaD#`~2

(I añadido algunas constantes, y ~1a ~4son potencias de 10.)

Explicación

setInterval("alert(Date())",1000);
     T         a      D#   ` ~2
Conor O'Brien
fuente
44
Alguien debería crear YAJSGV (Sin embargo, otra variante de golf JavaScript).
intrepidcoder
Esto parece imprimir mucho más que solo el tiempo.
Dennis
1
@Dennis Supuse que estaba bien según otras soluciones
Conor O'Brien el
Lo malo, solo había leído el tuyo y la respuesta de Bash.
Dennis
@Dennis No es un problema ^ _ ^
Conor O'Brien
5

Dyalog APL , 27 18 16 bytes

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

Pruébalo en línea!

⎕TSYMD hmst prepend
':',¨: a cada
nueva declaración
⎕DL 1espere un segundo y devuelva el tiempo de espera real; 1.0something segundos
cuenta el tiempo de espera real, dando 1
ir a la línea (1 = esta línea)

Adán
fuente
4

Perl 6 , 29 bytes

La forma correcta de hacer esto:

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 versión de golf

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
…

Dado que la salida no tiene que estar restringida solo al tiempo, puedo hacerlo un poco más corto.

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
fuente
4

R, 38 bytes

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

Esto genera la hora actual en el siguiente formato:

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

Powershell, 19 bytes

for(){date;sleep 1}
Danko Durbić
fuente
Como se ha señalado desde entonces, la salida simplemente necesita incluir hh: mm: ss que puede reducir afor(){date;sleep 1}
steve
4

PHP, 37 bytes

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

Emite la hora del servidor formateada y configura la página para que se actualice cada segundo.

Por supuesto, depende de su conexión a Internet y de la rapidez de respuesta de su servidor :)

Manifestación

nicael
fuente
No, no refrescante:Warning: Cannot modify header information - headers already sent
Martijn
@Martijn No tengo idea de con qué te puedes meter, porque funciona para mí :)
nicael
Eliminaré el voto negativo como beneficio de la duda, pero esto funciona exactamente una vez para mí. Probado en dos servidores regulares diferentes.
Martijn
2
Depende de si tiene activado el búfer de salida.
Andrea
<?=header('refresh:1').date('G:i:s');debería funcionar con cualquier configuración de bffering de salida.
Jasen
4

VBA, 69 bytes

Obtener el tiempo es fácil, now()solo sale cada 1 segundo ... MUCHO más detallado.

Esta es la forma "correcta" de esperar 1 segundo en VBA. 78 bytes

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

O si lo desea cortar algunas esquinas y sólo estar en lo correcto el 86% de las veces es lo suficientemente bueno 63 bytes
añadiendo una SigFig que llegan hasta el 95% de precisión y un tercero para poder llegar a 99,36%

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

Si desea obtener el método anterior al 100%, necesita 69 Bytes (1/86400)

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

Todos estos métodos tropezarían con un salto de segundo porque no esperan 1 segundo, pero esperan hasta 1 segundo. A la medianoche, cuando los relojes retroceden una hora, este reloj se detendrá durante 1 hora y luego continuará donde lo dejó.

VBA permite el Método de suspensión, pero su byte couter está arruinado. 97 bytes

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

JavaScript, 47 38 35 bytes

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

Explicación

Comprueba continuamente si el tiempo ha cambiado y luego alerts si ha cambiado .

for(
  p=1;
  t=Date();
  p=t
)
  t!=p
    &&alert(t)
usuario81655
fuente
No solo tiene que obtener la cadena de tiempo. ; D Mientras esté allí en algún lado.
Addison Crump
@VoteToClose ¡Oh cierto!
user81655
No piense que necesita +"", como sin new, Date()devuelve una cadena.
ETHproductions
@ETHproductions Ah, sí, eso se quedó allí cuando se usaba new. Gracias por atrapar eso!
user81655
3

AppleScript, 51 35 bytes

repetir
registrar fecha actual
retraso 1
fin

Bastante obvio. Imprime la fecha actual, que contiene la hora, demora un segundo y luego continúa.

Addison Crump
fuente
1
Espera, ¿está permitido imprimir la fecha actual y la hora?
un espagueti
@quartata Sí, cualquier concatenación con el tiempo, siempre que el tiempo se emita continuamente y se garantice que se emita, está bien.
Addison Crump
retraso 1 hace qué? pausa para 1000000000 ns?
Jasen
@Jasen Eso es correcto.
Addison Crump
3

𝔼𝕊𝕄𝕚𝕟, 13 caracteres / 25 bytes

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

Try it here(Firefox only).

Esto es sorprendentemente legible.

Mama Fun Roll
fuente
44
Cuando dices "sorprendentemente legible", sabes que estás tratando con un lenguaje divertido. +1
Addison Crump
3

Dyalog APL, 36 bytes

No muy corto esta vez.

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

Esto genera un tiempo de 24 horas, es decir:

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

Explicación:

  • {... }1: define una función y la llama (se ignora el argumento, pero necesitamos la función para llamarla de forma recursiva)
    • ⎕TS: una función del sistema que devuelve la fecha y hora actuales, en el formato año - mes - día - hora - minuto - segundo - milisegundo . ( ⎕TS= t ime s tamp)
    • 3↑3↓: suelte los primeros 3 elementos (es decir, año - mes - día) y luego tome los primeros 3 elementos que quedan (hora - minuto - segundo).
    • '⊂:⊃,ZI2'⎕FMT: formatea cada número como un entero de dos dígitos ( I2) con ceros a la izquierda ( Z), precedidos por dos puntos ( ⊂:⊃). (Esto da como resultado una matriz).
    • : Obtenga todos los elementos en la matriz, en orden de fila. (Esto da un vector, en este caso una cadena).
    • 1↓: suelta el primer carácter (que es un extra :)
    • ⎕←: salida
    • ⎕DL 1: luego espera un segundo ( ⎕DL= d e l ay)
    • : llama a la función de forma recursiva
marinus
fuente
{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1para 28 bytes, es suficiente según OP .
Adám
Las nuevas reglas permiten la salida de basura y espacios aleatorios, por lo que puede deshacerse de mucho.
Adám
3

QBasic, 18 bytes

?TIME$
SLEEP 1
RUN
Lynn
fuente
3

Haskell, 98 96 85 bytes

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

Versión alternativa con notación do:

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

Obtiene el tiempo actual getCurrentTimede la Data.Timebiblioteca, luego lo canaliza print, espera 1,000,000 microsegundos (1 segundo) y se llama a sí mismo.

Gracias a nimi y Mauris!

Craig Roy
fuente
m@main=...>>msiempre es más corto quemain=...>>main
Lynn
Además, dado que threadDelayes específico de GHC de todos modos, puede importarlo desde GHC.Conc
Lynn el
3

Lote - 34 40 bytes

Me encantan las variables integradas:

: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 debe haber algún sleepcomando en Batch en el corto plazo.

Árbol Gigante
fuente
No hay sueño incorporado pero hay tiempo de espera . Puede reemplazar el ping ...con timeout 1. Además, el reloj no es muy preciso cuando se usa ping. Es mejor con timeout;)
DavidPostill
@DavidPostill gracias por la sugerencia, nunca supe que había un comando en Windows. :)
GiantTree
@GiantTree De nada;)
DavidPostill
Golf: eliminar :Ay reemplazar goto Acon%0
stevefestl
3

Python 3, 99 bytes

Disculpas si formatea el código de forma extraña, haciéndolo desde un ipad. (no preguntar) Sé que este código es grande teniendo en cuenta algunas de las otras respuestas, pero todavía no vi uno de Python, así que quería agregarlo.

import time
import datetime
while(True):
 print(datetime.datetime.now().time())
 time.sleep(1)  
Ashwin Gupta
fuente
Puede reemplazar Truecon 1, y si coloca las líneas printy sleepen la misma línea que while(separadas por un punto y coma) le ahorra el espacio en blanco.
undergroundmonorail
@undergroundmonorail ok gracias por el consejo True / 1. No estoy acostumbrado a eso ya que Java Dosent hace eso. Tampoco sabía que Python tenía punto y coma. Lo investigaré
Ashwin Gupta
3

Java, 300 166 137 125 124 bytes

¡Casi más de la mitad gracias a VoteToClose, Paülo Ebermann y janschweizer!

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

Sin golf:

interface A {
    static void main(String[] a) throws Exception {
        for (;; Thread.sleep(1000)) System.out.println(new java.util.Date());
    }
}
gato
fuente
1
Simplifique sus importaciones: en java.util.*lugar de las dos java.utilimportaciones, java.text.*por el mismo razonamiento. Úselo for(;;)para bucles infinitos. Uso String[]aen la declaración principal. Uso interface A{static void main(..., ya que esto lo acortará aún más. Puede usar Exceptionover InterruptedException, y puede reemplazar excon e. También puede eliminar todo el texto dentro de la captura, ya que esto no hace nada de todos modos.
Addison Crump
1
Sí, lo de la interfaz es un poco raro: no tengo idea de por qué Java dejaría que eso fuera una cosa, teniendo en cuenta que las interfaces están específicamente diseñadas para que no se puedan ejecutar.
Addison Crump
1
Dos cosas: debe cambiar la cadena de tiempo a "HH: mm: ss": a partir de ahora, está formateando "Hora: Mes: Segundo". Además, dado que está utilizando un bucle, puede deshacerse de las declaraciones de variables DateFormaty Calendartodas juntas. Reemplaza el contenido del bucle for con System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}.
Addison Crump
1
Todas las cosas que acabo de sugerir, resumidas: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 Exceptiones más corto que un try / catch
fase
3

Perl, 99 81 75 51 40 36 29 27 bytes

sleep(print gmtime.$/);do$0
Steve
fuente
1
Puede acortarlo usando en gmtimelugar de localtime.
Brad Gilbert b2gills
2
Tambiénprintf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
Brad Gilbert b2gills
1
gmtime."\n"forzará un contexto escalar.
primo
1
Casi nunca debería necesitar hacer ."\n"en golf: use .$/para guardar 2 bytes. Como mínimo, use una nueva línea literal en lugar de \nguardar 1 byte.
ThisSuitIsBlackNot