Wyzwanie
Konwertuj i drukuj czas w formacie 12-godzinnym. HH:MM AM/PM
Przykłady
Wejście:
'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
Drobne punkty
Zero przed liczbą jednocyfrową jest w porządku , zero nie jest również dozwolone. Dozwolone są następujące przykłady :
9:06 AM
09:06 AM
Wszystkie testowane lata będą później
999
(każdy rok będzie dokładnie4
cyframi)
Zasady
- To jest golf golfowy, więc wygrywa najkrótsze rozwiązanie w bajtach
- Obowiązują standardowe luki
- Możesz korzystać zarówno z funkcji, jak i programów
00:10:23 --> 12:10 AM
i12:10:23 --> 12:10 PM
.'Fri Jun 30 2017 21:14:20 GMT-0400 (EDT)'
dla mnie)Odpowiedzi:
JavaScript (ES6), 69 bajtów
Pokaż fragment kodu
JavaScript (ES6),
5855 bajtówZakłada się, że jesteś w Stanach Zjednoczonych.
Pokaż fragment kodu
JavaScript (ES6),
8178 bajtówOdpowiedź przed wyprowadzeniem wiodącego 0 w jednocyfrowych godzinach stała się opcjonalna i dodano przypadki testowe bez wiodących zer.
Pokaż fragment kodu
źródło
${m>12?'P':'A'}M
na${"AP"[m>12]}M
, ale to nie działa bez rzutowania indeksu na liczbę całkowitą (jak z|0
), co czyni go tą samą długością. Ładnie gra w golfa.,21
plasterek, aby zapisać 3 bajty.Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)
. Powinien być PM. Zmianam>12
nam>11
powinna to naprawić.d=>(new Date(d).toLocaleString(0,{hour:'numeric',minute:'numeric',hour12:1}))
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
Python 2 , 66 bajtów
Wypróbuj online!
źródło
int(s[15:18])>11
nas[15:18]>"11"
?sh + coreutils, 22 bajty
(Jeśli sekundy są dozwolone, to
date +%r -d"$1"
wystarczy.)źródło
JavaScript (ES6), 77 bajtów
Zakłada, że rok ma 4 cyfry.
Przypadki testowe
Pokaż fragment kodu
źródło
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
en-US
i strefę czasowąGMT-0700 (PDT)
. Na przykład żadne z tych założeń nie jest dla mnie prawdziwe.Japt , 15 bajtów
Wypróbuj online!
12 bajtów, jeśli możemy założyć, że czas będzie podany w czasie lokalnym komputera:
Wypróbuj online!
Podejście matematyczne, 40 bajtów
Przetestuj online!
źródło
V , 36 bajtów
Wypróbuj online!
Hexdump:
źródło
PHP, 45 bajtów
Poprawiona odpowiedź dzięki manatwork
Pierwsze podejscie:
Przykładowe użycie za pomocą interfejsu php CLI:
To moja pierwsza gra w golfa.
źródło
$d
i ten sposób można pozbyć się wyraźneecho
:<?=(new DateTime($argv[1]))->format('h:i A');
.Galaretka , 43 bajty
Wypróbuj online!
To zbyteczne, zbyt długie ! Oznacza to, że galaretka ssie manipulację w czasie.
EDYCJA: Jestem nawet obezwładniony przez PHP!
źródło
Idź, 103 bajty
Przetestuj tutaj: https://play.golang.org/p/P1zRWGske-
źródło
05AB1E , 39 bajtów
Wypróbuj online!
źródło
PHP , 42 bajty
Wypróbuj online!
źródło
C #, 145 bajtów
Wersja pełna / sformatowana:
źródło
,,, 41 bajtów
Wyjaśnienie
WIP
źródło
MATL , 9 bajtów
Wypróbuj w MATL online! Lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie
źródło
XO
wykonuje większość pracy