Para este desafío, estamos escribiendo la hora en la siguiente forma: hh:mm:ss
Algunos ejemplos:
12:34:08
06:05:30
23:59:00
El desafío es generar el tiempo después de que hayan transcurrido una cantidad de horas , minutos y segundos , con el tiempo de inicio 00:00:00
. Puede comparar esto con un temporizador que comenzó en 00:00:00
.
Aquí hay un ejemplo de entradas (usando STDIN ) y salidas:
Input: 1h20m5s
Output: 01:20:05
Input: 0h100m0s
Output: 01:40:00
Después de 24 horas, el temporizador se reinicia:
Input: 25h0m0s
Output: 01:00:00
La forma de la entrada es siempre la misma: XhYmZs
con X
horas, Y
minutos y Z
segundos (suponga eso X
, Y
y Z
son enteros enteros menores que 100000 y nunca negativos)
Este es el código de golf , por lo que la menor cantidad de bytes gana este desafío
Respuestas:
CJam, 34 bytes
Pruébalo aquí .
fuente
Ruby -
1311151079784 bytesTodavía lo estoy jugando al golf.
Gracias por @Doorknob por / \ w / inshead de / h | m | s /
fuente
gets.tr('ms',?h).split(?h)
->gets.split(/\w/)
.Mathematica,
133116112111 bytesfuente
Python 2,
138126 BytesAhora estoy usando expresiones regulares, aunque todavía bastante largo ...
La entrada debe estar entre comillas.
fuente
C
149112 bytesPruébalo aquí
Créditos a @Dennis por deshacerse de mucho.
fuente
main(h,m,s){scanf("%dh%dm%ds",&h,&m,&s);s+=h*3600+m*60;m=s/60;h=m/60;printf("%02d:%02d:%02d",h%24,m%60,s%60);}
(110 bytes, lecturas de STDIN)h,m,s;main()
Debería ser más portátil.main(h,m,s)
funciona con GCC ( enlace )m=s/60;h=m/60;
? Después de esto, también puedes deshacerte de éls+=
.JavaScript 110 bytes
Donde x es la entrada
No creo que esta sea la forma más eficiente.
fuente
PHP, 80
8893Bytes(guardado como ISO-8859-1)
Funciona solo en PHP 5 debido a la
split
función obsoleta . Asume que los avisos no se muestran.Cómo funciona:
¤—’¢
está"[hm]"
invertido y es un nombre constante válido, PHP usa constantes indefinidas como cadena (guarda un carácter para las comillas)·Å–ÅŒ
es lo mismo para"H:i:s"
<?=x,y
salidas x e y. Utilizando!
, el resultado de la$s
asignación se convierte en booleano y se niega, luego se convierte en cadena para la salida.(string)false === ''
split("[hm]", "XhYmZs")
divide la cadena a[X,Y,Zs]
. Entonces,3600*X+60*Y+Zs
es el número de segundos. PHP convierteZs
a entero comoZ
date(Z)
, usamos este resultado como una marca de tiempo e imprimimos su parte de tiempo como "horas: minutos: segundos". En UTC (desplazamiento 0), la marca de tiempo0
es1970/01/01 00:00:00
. Restar el desplazamiento de la zona horaria normaliza la fecha como UTC sin cambiar la zona horaria realmente utilizada (esto ahorró 8 bytes para configurar la zona horaria).fuente
AutoIt, 208 bytes
Demasiado largo. Prueba:
fuente
Pyth, 40 bytes
Todavía estoy aprendiendo. Pruébalo aquí!
fuente
Perl 5, 84 (83 Bytes + 1)
Utiliza el desbordamiento de segundos o minutos.
Prueba
fuente
VBA (
150149 bytes)fuente
msgbox
como salida, puede cambiar aSub
ay guardar 2 bytes. También puede Golf todo el espacio en blanco innecesario alrededor=
y después de cada uno,
para derribarlo alrededor de 134.JavaScript, 97 bytes
fuente
Invalid left-hand side in assignment
PowerShell, 84 bytes
Divide la entrada de la línea de comandos en una matriz de cadenas basadas en la
[hms]
expresión regular. Utiliza la función incorporada detallada.AddSeconds()
para agregar (horas * 3600, minutos * 60 y segundos) a(date 0)
a / k / aMonday, January 1, 0001, 12:00:00 AM
, luego lo alimenta-f
con formatoHH:mm:ss
que lo convertirá automáticamente a formato de reloj de 24 horas y lo emitirá.Ejemplo:
fuente
Lua, 104 bytes
fuente
VB.NET (107 bytes)
Primer envío para el código de golf, así que supongo que el recuento de caracteres => ¿recuento de bytes?
fuente
Pitón 3, 158
Versión sin golf:
fuente
CJam, 50 bytes
fuente
GNU sed + fecha, 51 bytes
(incluido +1 byte para
-r
bandera)Esto simplemente
date
agrega el número especificado de horas, minutos y segundos a00:00:00
(hoy) y muestra la parte de tiempo. Se recomienda configurarTZ=UTC
o evitar ejecutar el programa alrededor de un cambio de hora local (por ejemplo, horario de verano).fuente