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: XhYmZscon Xhoras, Yminutos y Zsegundos (suponga eso X, Yy Zson 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
splitfunció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,ysalidas x e y. Utilizando!, el resultado de la$sasignació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+Zses el número de segundos. PHP convierteZsa entero comoZdate(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 tiempo0es1970/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
msgboxcomo salida, puede cambiar aSubay 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 assignmentPowerShell, 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-fcon formatoHH:mm:ssque 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
-rbandera)Esto simplemente
dateagrega el número especificado de horas, minutos y segundos a00:00:00(hoy) y muestra la parte de tiempo. Se recomienda configurarTZ=UTCo evitar ejecutar el programa alrededor de un cambio de hora local (por ejemplo, horario de verano).fuente