Desafio
Converta e imprima uma hora no formato de 12 horas. HH:MM AM/PM
Exemplos
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
Pontos finos
Um zero antes que um número de um dígito esteja correto , nenhum zero também é permitido. Os seguintes exemplos são permitidos :
9:06 AM
09:06 AM
Todos os anos testados serão posteriores
999
(cada ano terá exatamente4
dígitos)
Regras
- Isso é código-golfe, então a solução mais curta em bytes vence
- As brechas padrão se aplicam
- Você pode usar funções e programas
00:10:23 --> 12:10 AM
e12:10:23 --> 12:10 PM
.'Fri Jun 30 2017 21:14:20 GMT-0400 (EDT)'
para mim)Respostas:
JavaScript (ES6), 69 bytes
Mostrar snippet de código
JavaScript (ES6),
5855 bytesSupõe que você esteja nos Estados Unidos.
Mostrar snippet de código
JavaScript (ES6),
8178 bytesA resposta antes de emitir um 0 inicial em horas de um dígito foi tornada opcional e foram adicionados casos de teste sem 0s inicial.
Mostrar snippet de código
fonte
${m>12?'P':'A'}M
para${"AP"[m>12]}M
, mas ele não funciona sem converter o índice em um número inteiro (como em|0
), o que o torna com o mesmo comprimento. Bem jogado.,21
na fatia para salvar 3 bytes.Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)
. Deve ser PM. Mudarm>12
param>11
deve corrigi-lo.d=>(new Date(d).toLocaleString(0,{hour:'numeric',minute:'numeric',hour12:1}))
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
Python 2 , 66 bytes
Experimente online!
fonte
int(s[15:18])>11
paras[15:18]>"11"
?sh + coreutils, 22 bytes
(Se segundos são permitidos, então
date +%r -d"$1"
é suficiente.)fonte
JavaScript (ES6), 77 bytes
Supõe que o ano tenha 4 dígitos.
Casos de teste
Mostrar snippet de código
fonte
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
en-US
e seu fuso horárioGMT-0700 (PDT)
. Por exemplo, nenhuma dessas suposições é verdadeira para mim.Japonês , 15 bytes
Experimente online!
12 bytes, se pudermos supor que a hora será dada na hora local do computador:
Experimente online!
Abordagem Mathy, 40 bytes
Teste online!
fonte
V , 36 bytes
Experimente online!
Hexdump:
fonte
PHP, 45 bytes
Resposta melhorada graças ao manatwork
Primeira tentativa:
Exemplo de uso através do php CLI:
Esta é a minha primeira tentativa de golfe.
fonte
$d
e de que maneira você pode se livrar do explícitaecho
:<?=(new DateTime($argv[1]))->format('h:i A');
.Gelatina , 43 bytes
Experimente online!
Isso é supérfluo demais ! Ou seja, Jelly é péssimo na manipulação do tempo.
EDIT: Estou até superado pelo PHP!
fonte
Vá, 103 bytes
Teste aqui: https://play.golang.org/p/P1zRWGske-
fonte
05AB1E , 39 bytes
Experimente online!
fonte
PHP , 42 bytes
Experimente online!
fonte
C #, 145 bytes
Versão completa / formatada:
fonte
,,,, 41 bytes
Explicação
WIP
fonte
MATL , 9 bytes
Experimente no MATL online! Ou verifique todos os casos de teste .
Explicação
fonte
XO
faz a maioria do trabalho