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 golf de código . 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 N
está 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
sleep 1
las reglas basadas en la ruptura de la respuesta 5: debe garantizar una, y solo una, salida de tiempo por segundo. !!Respuestas:
Minecraft 1.8.7, 7 + 8 = 15 blytes (bytes + bloques)
Solo un bloque de comando involucrado:
La salida va a la consola del cliente así:
Como parte de la salida normal.
Este es el sistema:
xp
da una cantidad específica de experiencia a un jugador específico con la sintaxisxp <amount> <player>
. Estoy bastante seguro de que este es el comando más pequeño que tiene una salida singular que puedo obtener, ahora.fuente
JavaScript, 32 bytes
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).fuente
setInterval(alert,1e3,Date())
Funcionaría en su lugar?Date()
solo se evaluará una vez cuando cree el intervalosh (+ reloj), 11 bytes
Guión:
(sin línea nueva)
Salida:
La cantidad de espacios depende del ancho del terminal.
Probado en Debian8 y NetBSD7.
fuente
watch
es un coreutil. El lenguaje real es bash / sh.Bash (distribution)
, nowatch
? @Doorknob-p
interruptor para no romper la regla . Debe garantizar una, y solo una, salida de tiempo por segundo. !!Snap ,
876 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.
fuente
9:21:08
?Python 2, 47 bytes
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 elctime
truco.Imprime la fecha y hora actuales de esta manera:
Fri Nov 27 21:23:02 2015
fuente
sleep 1
respuesta basada en la regla 5: debe garantizar una, y solo una, salida de tiempo por segundo.sleep 1
hace que el hilo actual duerma exactamente un segundo. Cumple con las reglas.sleep(1)
tanto en su solución de AppleScript y su solución fiesta Vitsy + , está claro que es aceptable.Perl, línea de comando, 24 bytes
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
En un contexto escalar,
gmtime
devolverá una cadena similar aSat Nov 28 10:23:05 2015
. El resultado deprint
, siempre 1, se utiliza como parámetro parasleep
.do$0
se utiliza para ejecutar el script nuevamente, una vez que el temporizador ha finalizado.fuente
{sleep say~~gmtime;redo}
.sleep 1
respuesta basada en la regla 5: debe garantizar una, y solo una, salida de tiempo por segundo .Javascript ES6, 43 39 bytes
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.
fuente
.toTimeString()
en Chrome y FF.new Date()
conDate()
Arcyóu , 27 bytes
Tuve que reunir dos nuevas funciones para este desafío,
zz
yst
.pn
: Exactamente como el de Lispprogn
.zz
: Enlace directo a Pythontime.sleep
.st
: Enlace directo a Pythontime.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.
fuente
Bash,
5131242120 bytesGracias 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.
date
muestra la fecha completa con un reloj de 24 horas.sleep 1
duerme por un segundoexec $0
repite el guión infinitamente.fuente
true
con elsleep 1
ya quesleep
devuelve a1
.date +%T;sleep 1;exec $0
Es un poco más corto. @quartata Nitpicking:sleep
tiene el código de salida cero, por lo quewhile
continúa.date
, por lo que solo son 20 bytes.Befunge 98, 53 bytes
Notas:
.
comando imprime un espacio implícito al final.d
de la primera línea aa
fuente
"EMIT"4(
al principio del programa, le comunica al intérprete para cargar laTIME
huella digital, que permite a losH
,M
yS
las instrucciones. (No, no emite el número 4).mIRC 7.49
2016 Bytesfuente
say
lo que necesitará para conectarse a un servidor y luego unirse a un canal. de lo contrario usarías enecho
lugar desay
. mIRC tiene su propio lenguaje de scripting mSL (mIRC scripting language)AutoHotkey, 50 bytes
Notas:
fuente
x
.C (en Linux x64),
179177175168159 bytesSin golf:
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.
fuente
#include
y<...>
. Además, ¿puedes usar en1e6
lugar de1000000
?#include
s. 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.%T
como la especificación de formato enstrftime
.Jolf ,
1487 bytesTachado 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.
(I añadido algunas constantes, y
~1
a~4
son potencias de10
.)Explicación
fuente
Dyalog APL ,
27 1816 bytesPruébalo en línea!
⎕TS
YMD hmst prepend':',¨
: a cada⋄
nueva declaración⎕DL 1
espere 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)fuente
Perl 6 , 29 bytes
La forma correcta de hacer esto:
La versión de golf
Dado que la salida no tiene que estar restringida solo al tiempo, puedo hacerlo un poco más corto.
fuente
R, 38 bytes
Esto genera la hora actual en el siguiente formato:
fuente
Powershell, 19 bytes
fuente
for(){date;sleep 1}
PHP, 37 bytes
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
fuente
Warning: Cannot modify header information - headers already sent
<?=header('refresh:1').date('G:i:s');
debería funcionar con cualquier configuración de bffering de salida.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
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%
Si desea obtener el método anterior al 100%, necesita 69 Bytes
(1/86400)
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
fuente
JavaScript,
473835 bytesExplicación
Comprueba continuamente si el tiempo ha cambiado y luego
alert
s si ha cambiado .fuente
+""
, como sinnew
,Date()
devuelve una cadena.new
. Gracias por atrapar eso!AppleScript,
5135 bytesBastante obvio. Imprime la fecha actual, que contiene la hora, demora un segundo y luego continúa.
fuente
𝔼𝕊𝕄𝕚𝕟, 13 caracteres / 25 bytes
Try it here(Firefox only).
Esto es sorprendentemente legible.
fuente
Dyalog APL, 36 bytes
No muy corto esta vez.
Esto genera un tiempo de 24 horas, es decir:
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 recursivafuente
{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1
para 28 bytes, es suficiente según OP .QBasic, 18 bytes
fuente
Haskell,
989685 bytesVersión alternativa con notación do:
Obtiene el tiempo actual
getCurrentTime
de laData.Time
biblioteca, luego lo canalizaprint
, espera 1,000,000 microsegundos (1 segundo) y se llama a sí mismo.Gracias a nimi y Mauris!
fuente
m@main=...>>m
siempre es más corto quemain=...>>main
threadDelay
es específico de GHC de todos modos, puede importarlo desdeGHC.Conc
Lote - 34
40bytesMe encantan las variables integradas:
Definitivamente debe haber algún
sleep
comando en Batch en el corto plazo.fuente
ping ...
contimeout 1
. Además, el reloj no es muy preciso cuando se usaping
. Es mejor contimeout
;):A
y reemplazargoto A
con%0
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.
fuente
True
con1
, y si coloca las líneasprint
ysleep
en la misma línea quewhile
(separadas por un punto y coma) le ahorra el espacio en blanco.Java,
300166137125124 bytes¡Casimás de la mitad gracias a VoteToClose, Paülo Ebermann y janschweizer!Sin golf:
fuente
java.util.*
lugar de las dosjava.util
importaciones,java.text.*
por el mismo razonamiento. Úselofor(;;)
para bucles infinitos. UsoString[]a
en la declaración principal. Usointerface A{static void main(...
, ya que esto lo acortará aún más. Puede usarException
overInterruptedException
, y puede reemplazarex
cone
. También puede eliminar todo el texto dentro de la captura, ya que esto no hace nada de todos modos.DateFormat
yCalendar
todas juntas. Reemplaza el contenido del bucle for conSystem.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
es más corto que un try / catchPerl,
9981755140362927 bytesfuente
gmtime
lugar delocaltime
.printf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
gmtime."\n"
forzará un contexto escalar.."\n"
en golf: use.$/
para guardar 2 bytes. Como mínimo, use una nueva línea literal en lugar de\n
guardar 1 byte.