Desafío
Convierta e imprima una hora en un formato de 12 horas. HH:MM AM/PM
Ejemplos
Entrada:
'Fri Jun 30 2017 21:14:20 GMT-0700 (PDT)'
'Fri Jun 30 2017 00:10:23 GMT-0700 (PDT)'
'Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)'
'Sat Jun 31 2018 8:06:20 GMT-0700 (PDT)'
'Fri Jul 01 2017 01:14:20 GMT-0700 (PDT)'
'Sat Apr 10 2020 09:06:20 GMT-0700 (PDT)'
Ouput:
9:14 PM
12:10 AM
12:10 PM
08:06 AM
1:14 AM
09:06 AM
Puntos finos
Un cero antes de un número de un dígito está bien , tampoco se permite cero. Los siguientes ejemplos están permitidos :
9:06 AM
09:06 AM
Todos los años probados serán posteriores
999
(cada año serán exactamente4
dígitos)
Reglas
- Este es el código de golf, por lo que gana la solución más corta en bytes
- Se aplican lagunas estándar
- Puede usar funciones y programas
00:10:23 --> 12:10 AM
y12:10:23 --> 12:10 PM
.'Fri Jun 30 2017 21:14:20 GMT-0400 (EDT)'
para mí)Respuestas:
JavaScript (ES6), 69 bytes
Mostrar fragmento de código
JavaScript (ES6),
5855 bytesAsume que estás en los Estados Unidos.
Mostrar fragmento de código
JavaScript (ES6),
8178 bytesLa respuesta antes de generar un 0 inicial en horas de un solo dígito se hizo opcional y se agregaron casos de prueba sin 0 iniciales.
Mostrar fragmento de código
fuente
${m>12?'P':'A'}M
a${"AP"[m>12]}M
, pero no funciona sin convertir el índice en un entero (como con|0
), lo que lo hace de la misma longitud. Muy bien golfizado.,21
en el segmento para guardar 3 bytes.Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)
. Debería ser PM. Cambiarm>12
am>11
debería solucionarlo.d=>(new Date(d).toLocaleString(0,{hour:'numeric',minute:'numeric',hour12:1}))
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
Python 2 , 66 bytes
Pruébalo en línea!
fuente
int(s[15:18])>11
as[15:18]>"11"
?sh + coreutils, 22 bytes
(Si se permiten segundos, entonces es
date +%r -d"$1"
suficiente).fuente
JavaScript (ES6), 77 bytes
Asume que el año tiene 4 dígitos.
Casos de prueba
Mostrar fragmento de código
fuente
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
en-US
y su zona horaria esGMT-0700 (PDT)
. Por ejemplo, ninguno de estos supuestos es cierto para mí.Japt , 15 bytes
Pruébalo en línea!
12 bytes si podemos suponer que la hora se dará en la hora local de la computadora:
Pruébalo en línea!
Enfoque matemático, 40 bytes
¡Pruébalo en línea!
fuente
V , 36 bytes
Pruébalo en línea!
Hexdump:
fuente
PHP, 45 bytes
Respuesta mejorada gracias a manatwork
Primer intento:
Ejemplo de uso a través de php CLI:
Este es mi primer intento de golf.
fuente
$d
y de esa manera usted puede deshacerse de la explícitaecho
:<?=(new DateTime($argv[1]))->format('h:i A');
.Jalea , 43 bytes
Pruébalo en línea!
¡Esto es demasiado largo ! Es decir, Jelly apesta a la hora de la manipulación.
EDITAR: ¡Incluso estoy superado por PHP!
fuente
Go, 103 bytes
Prueba aquí: https://play.golang.org/p/P1zRWGske-
fuente
05AB1E , 39 bytes
Pruébalo en línea!
fuente
PHP , 42 bytes
Pruébalo en línea!
fuente
C #, 145 bytes
Versión completa / formateada:
fuente
,,, 41 bytes
Explicación
WIP
fuente
MATL , 9 bytes
Pruébalo en MATL en línea! O verificar todos los casos de prueba .
Explicación
fuente
XO
hace la mayor parte del trabajo