Herausforderung
Konvertieren und drucken Sie eine Zeit im 12-Stunden-Format. HH:MM AM/PM
Beispiele
Eingang:
'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)'
Ausgabe:
9:14 PM
12:10 AM
12:10 PM
08:06 AM
1:14 AM
09:06 AM
Feine Punkte
Eine Null vor einer einstelligen Zahl ist in Ordnung , es ist auch keine Null zulässig. Folgende Beispiele sind zulässig :
9:06 AM
09:06 AM
Alle getesteten Jahre werden danach sein
999
(jedes Jahr werden genau4
Ziffern sein)
Regeln
- Dies ist Code-Golf, also gewinnt die kürzeste Lösung in Bytes
- Standardschlupflöcher gelten
- Sie können sowohl Funktionen als auch Programme verwenden
00:10:23 --> 12:10 AM
und12:10:23 --> 12:10 PM
.'Fri Jun 30 2017 21:14:20 GMT-0400 (EDT)'
für mich)Antworten:
JavaScript (ES6), 69 Byte
Code-Snippet anzeigen
JavaScript (ES6),
5855 ByteAngenommen, Sie befinden sich in den USA.
Code-Snippet anzeigen
JavaScript (ES6),
8178 ByteDie Antwort vor der Ausgabe einer führenden 0 in einstelligen Stunden wurde optional gemacht und Testfälle ohne führende 0 wurden hinzugefügt.
Code-Snippet anzeigen
quelle
${m>12?'P':'A'}M
zu${"AP"[m>12]}M
, aber es funktioniert nicht ohne den Index auf eine ganze Zahl zu Gießen (wie bei|0
), das es die gleiche Länge macht. Schön Golf gespielt.,21
im Slice weglassen , um 3 Bytes zu speichern.Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)
. Sollte PM sein. Ein Wechselm>12
zum>11
sollte das Problem beheben.d=>(new Date(d).toLocaleString(0,{hour:'numeric',minute:'numeric',hour12:1}))
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
Python 2 , 66 Bytes
Probieren Sie es online aus!
quelle
int(s[15:18])>11
zus[15:18]>"11"
?sh + coreutils, 22 Bytes
(Wenn Sekunden zulässig sind,
date +%r -d"$1"
reicht dies aus.)quelle
JavaScript (ES6), 77 Byte
Angenommen, das Jahr hat 4 Ziffern.
Testfälle
Code-Snippet anzeigen
quelle
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
en-US
und Ihre Zeitzone sindGMT-0700 (PDT)
. Zum Beispiel trifft keine dieser Annahmen auf mich zu.Japt , 15 Bytes
Probieren Sie es online aus!
12 Bytes, wenn wir davon ausgehen können, dass die Zeit in der Ortszeit des Computers angegeben wird:
Probieren Sie es online aus!
Mathy Ansatz, 40 Bytes
Testen Sie es online!
quelle
V , 36 Bytes
Probieren Sie es online aus!
Hexdump:
quelle
PHP, 45 Bytes
Antwort dank Manatwork verbessert
Erster Versuch:
Beispiel für die Verwendung über PHP CLI:
Dies ist mein erster Golfversuch.
quelle
$d
und auf diese Weise können Sie die explizite entfernenecho
:<?=(new DateTime($argv[1]))->format('h:i A');
.Gelee , 43 Bytes
Probieren Sie es online aus!
Das ist überflüssig zu lang ! Das heißt, Jelly saugt bei Zeitmanipulation.
EDIT: Ich bin sogar von PHP outgolfed!
quelle
Gehen Sie, 103 Bytes
Testen Sie hier: https://play.golang.org/p/P1zRWGske-
quelle
05AB1E , 39 Bytes
Probieren Sie es online aus!
quelle
PHP , 42 Bytes
Probieren Sie es online aus!
quelle
C #, 145 Bytes
Vollversion / Formatierte Version:
quelle
,,,, 41 Bytes
Erläuterung
WIP
quelle
MATL , 9 Bytes
Probieren Sie es bei MATL online aus! Oder überprüfen Sie alle Testfälle .
Erläuterung
quelle
XO
größten Teil der Arbeit