El programa
Se le da dos cadenas, A y B . A es la posición actual en la que se encuentra su temporizador, y B es la posición en la que se detendrá su temporizador. Ambas cadenas tienen el formato m: ss . Debe escribir un programa que determine la cantidad de tiempo restante que también debe formatearse como m: ss o mm: ss .
Ejemplo
0:00 0:01 -> 0:01
0:55 1:00 -> 0:05
1:45 3:15 -> 1:30

:es un comando (datos como filosofía de código). ¿Puedo usar espacios en su lugar o necesito encontrar otro idioma para responder esto?01:30salida válida? (cero a la izquierda)Respuestas:
Excel, 6 bytes
Asumiendo que A está en la celda
A1y B está en la celdaB1fuente
|vy':¡bootstrapped en 05AB1E, nada que pueda hacer ... Creo que Excel puede ganar esto honestamente, nada más analiza automáticamente ese formato que conozco.45:4522:2223:23:00MATL ,
177 bytesLa entrada es una matriz de celdas de cadenas, en forma
{'1:45' '3:15'}o{'1:45', '3:15'}.Pruébalo en línea!
Explicación
fuente
Bash + coreutils,
4439 bytesPruébalo en línea!
Explicación: usando "1:45 3:15" como caso de prueba (último ejemplo). Muestro pasos intermedios entre comillas.
Tenga en cuenta que no verifico si el valor minuto necesita cero relleno, porque el OP declaró que el valor máximo para
m9.A continuación se muestra mi respuesta original de 44 bytes, que usaba el
datecomando para convertir el tiempo total restante en segundos alm:ssformato.fuente
Python 2,
90878380 bytesToma entrada como
"2:45","5:01".Pruébalo en línea
fuente
a,b=[60*int(s[-5:-3])+int(s[-2:])for s in input()]print'%d:%02d'%divmod(b-a,60):)c, 86
Lee tiempos separados por espacios de STDIN.
Pruébalo en línea .
fuente
Lote, 74 bytes
Reemplazar el
:en el tiempo con lo*60+1convierte en una expresión que calcula el número de segundos. Batch interpreta los ceros a la izquierda como octales, así que antepongo a1a los segundos para asegurar la conversión decimal; Afortunadamente, los dos se1cancelan.fuente
C,
112100 bytes¡Gracias a @betseg por guardar 11 bytes y gracias a @Johan du Toit por guardar un byte!
Pruébalo en línea!
fuente
%s%dcon%02dy eliminar el?:. Pruébalo en línea!scanf()es tu amigo para leer múltiples enteros.MySQL,
1322 bytesespera los tiempos en
AyB.fuente
Bash + GNU utilidades, 43
Pruébalo en línea .
Explicación
Tenga en cuenta que la
dcexpresión se divide por 60, porquedatelee la entrada como H: MM en lugar de M: SS.fuente
ECMAScript 6,
999185 bytesLinea sola:
Ligeramente formateado:
Siento que podría haber algunos ahorros allí ... pero no los estoy viendo en este momento.
Editar: excelentes sugerencias en los comentarios.
fuente
s.s.split(":"), puede utilizar la nueva sintaxis:s.split<backtick>:<backtick>.PHP,
5553 bytestoma datos de los argumentos de la línea de comandos
fuente
<?=date('i:s',($x=strtotime)($argv[2])-$x($argv[1]));C #, 72 bytes
Toma la entrada como cadenas.
b="3:15"a="1:45".Explicación:
Debido a que
DateTime.Parse()devuelve una fecha enhh:mm:ssformato, puedo analizar el resultado en una cadena usando+"", luego recortar el final:00.Esto funciona
hh:mmporque hay 60 segundos en un minuto y 60 minutos en una hora.0:010:00devoluciones0:011:000:55devoluciones0:053:151:45devoluciones1:30fuente
DateTime.Parse()está tomando la entrada, por ejemplo,1:45comohh:mmy nomm:ss, lo que resulta en la siguiente salida, para A1:45y B3:15-[01:30:00](hh:mm:ss) ( incluso con laCultureInfo.InvariantCultureespecificada ). Es posible que"0:" + a/bdeba agregar un al analizar.:00.;final, puede usar currya=>b=>, es decir , debe calificarDateTimeo incluir por completousing System;.Rebol, 5 bytes
Asumiendo que no me perdí ninguna regla ...
Rebol tiene aritmética incorporada para varios tipos de datos literales. Esto también se aplica a sus descendientes como Red
fuente
Pyth,
47454440 BytesToma la entrada separada por nuevas líneas.
Pyth no tenía incorporaciones de tiempo útiles para esto. Intenté algunas cosas elegantes de eval (), pero aparentemente Pyth no puede evaluar cosas con
*ceros iniciales ni ningún otro. Esto se hizo mucho más largo de lo que esperaba. Se gastan algunos bytes en agregar un cero inicial a la salida. Al menos soy más bajo que bash. Agregará explicación si se le solicita.¡Prueba esto!
solución alternativa, 48 bytes
fuente
Haskell,
9812786 BytesPruébalo en línea!
Pero me pregunto si hay algunas funciones de biblioteca para esto
EDITAR: Se eliminó la importación, también se corrigió un error donde mostraba m: s en lugar de m: ss
Además, versión bien formateada:
EDIT2: Golfed (30?) Bytes gracias a Laikoni! También golf algunos otros misceláneos. bytes
fuente
T-SQL, 238 bytes
Uso:
Al ver el ejemplo de PostGres anteriormente, me di cuenta de que no había visto muchos intentos de golf en SQL, así que lo intenté en T-SQL. Ahora sé por qué no ves mucho golf en SQL: D
fuente
CJam ,
343325 bytes¡Ahorró 8 bytes gracias a Martin Ender!
Pruébalo en línea!
Explicación
fuente
T-SQL, 82 bytes
fuente
Python, 160 bytes
Todavía soy nuevo en el código de golf, así que si alguien tiene alguna sugerencia, lo agradecería.
fuente
raw_input().REXX, 79 bytes
fuente
Pyth, 28
Intentalo .
Explicación
fuente
Java 7, 164 bytes
Explicación:
Código de prueba:
Pruébalo aquí.
Salida:
fuente
TXR Lisp, 101 bytes
Condensado:
(awk(:let(s"%M:%S"))((mf(time-parse s))(prn(time-string-local(-[f 1].(time-utc)[f 0].(time-utc))s))))fuente
Ruby , 91 bytes
Pruébalo en línea!
Toma información de los argumentos de la línea de comandos.
Invocación:
Ejemplo:
Salida:
fuente
PowerShell 47 Bytes
Matemáticas simples de intervalo de tiempo y conversión a una secuencia de hora y segundos.
fuente
JavaScript, 88 bytes
Pruébalo en línea!
Explicación:
Divide las entradas en el colon
Convierte una cadena a int
Obtiene el valor minuto
Obtiene el segundo valor
Devuelve la cadena minutos: segundos
fuente