Défi
Convertissez et imprimez une heure au format 12 heures. HH:MM AM/PM
Exemples
Contribution:
'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)'
Sortie:
9:14 PM
12:10 AM
12:10 PM
08:06 AM
1:14 AM
09:06 AM
Fine Points
Un zéro avant un nombre à un chiffre est correct , aucun zéro n'est également autorisé. Les exemples suivants sont tous deux autorisés :
9:06 AM
09:06 AM
Toutes les années testées seront après
999
(chaque année sera exactement des4
chiffres)
Règles
- Il s'agit de code-golf, donc la solution la plus courte en octets l'emporte
- Les échappatoires standard s'appliquent
- Vous pouvez utiliser des fonctions ainsi que des programmes
00:10:23 --> 12:10 AM
et12:10:23 --> 12:10 PM
.'Fri Jun 30 2017 21:14:20 GMT-0400 (EDT)'
pour moi)Réponses:
JavaScript (ES6), 69 octets
Afficher l'extrait de code
JavaScript (ES6),
5855 octetsSuppose que vous êtes aux États-Unis.
Afficher l'extrait de code
JavaScript (ES6),
8178 octetsLa réponse avant d'émettre un 0 de tête en heures à un chiffre a été rendue facultative et des cas de test sans 0 de tête ont été ajoutés.
Afficher l'extrait de code
la source
${m>12?'P':'A'}M
pour${"AP"[m>12]}M
, mais cela ne fonctionne pas sans convertir l'index en un entier (comme avec|0
), ce qui lui donne la même longueur. Joliment joué au golf.,21
dans la tranche pour enregistrer 3 octets.Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)
. Devrait être PM. Changerm>12
pourm>11
devrait le réparer.d=>(new Date(d).toLocaleString(0,{hour:'numeric',minute:'numeric',hour12:1}))
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
Python 2 , 66 octets
Essayez-le en ligne!
la source
int(s[15:18])>11
pours[15:18]>"11"
?sh + coreutils, 22 octets
(Si les secondes sont autorisées, cela
date +%r -d"$1"
suffit.)la source
JavaScript (ES6), 77 octets
Suppose que l'année comporte 4 chiffres.
Cas de test
Afficher l'extrait de code
la source
d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
en-US
et votre fuseau horaire estGMT-0700 (PDT)
. Par exemple, aucune de ces hypothèses n'est vraie pour moi.Japt , 15 octets
Essayez-le en ligne!
12 octets si l'on peut supposer que l'heure sera donnée dans l'heure locale de l'ordinateur:
Essayez-le en ligne!
Approche Mathy, 40 octets
Testez-le en ligne!
la source
V , 36 octets
Essayez-le en ligne!
Hexdump:
la source
PHP, 45 octets
Réponse améliorée grâce au manatwork
Premier essai:
Exemple d'utilisation via php CLI:
Ceci est mon premier essai de golf.
la source
$d
et de cette façon vous pouvez vous débarrasser de l'expliciteecho
:<?=(new DateTime($argv[1]))->format('h:i A');
.Gelée , 43 octets
Essayez-le en ligne!
C'est superflu trop long ! Autrement dit, Jelly suce à la manipulation du temps.
EDIT: je suis même dépassé par PHP!
la source
Aller, 103 octets
Testez ici: https://play.golang.org/p/P1zRWGske-
la source
05AB1E , 39 octets
Essayez-le en ligne!
la source
PHP , 42 octets
Essayez-le en ligne!
la source
C #, 145 octets
Version complète / formatée:
la source
,,,, 41 octets
Explication
WIP
la source
MATL , 9 octets
Essayez-le sur MATL en ligne! Ou vérifiez tous les cas de test .
Explication
la source
XO
fait la plupart du travail