Étonnamment, cette tâche simple ne semble pas déjà exister, alors ...
Votre tâche consiste à écrire un programme qui prend en entrée une heure de 12 heures, et la convertit en "heure militaire", ou au format 24 heures.
L'entrée se fera sous la forme:
HH:MM am/pm
Bien que de légères variations soient autorisées:
L'espace séparant l'am / pm du reste du temps est optionnel.
La dernière partie peut être "am" / "pm" ou "a" / "p".
Toute capitalisation est très bien.
La sortie sera l'heure entrée, transformée en format 24 heures. Il peut s'agir d'un nombre ou d'une chaîne.
Pour l'entrée et la sortie:
Les 0 en premier lieu sont facultatifs. Les 0 aux 3 dernières places sont obligatoires.
le délimiteur séparant les heures et les minutes peut être un ":", "" (un espace) ou rien.
Autres notes:
Minuit peut être exprimé en 0000 ou 2400.
Minuit sera considéré comme "am", tandis que midi sera considéré comme "pm".
Votre programme peut être une fonction, ou un programme complet, et doit soit retourner le résultat, soit le sortir vers la sortie standard. La fin des espaces blancs est correcte.
Exemples (vous n'êtes pas obligé de prendre en charge tous les formats):
12:00am -> 0000
1200 pm -> 1200
1234Am -> 00:34
134a -> 134
01:34PM -> 13 34
1234pm -> 1234
C'est le golf de code, donc le plus petit nombre d'octets gagne. Étant donné que c'est tellement trivial à résoudre en utilisant un intégré, il serait bien de voir du code qui résout manuellement cela (mais l'utilisation des intégrés est très bien).
Juste pour clarifier, vous n'êtes pas obligé de prendre en charge tous les formats possibles. La prise en charge d'une seule entrée et d'un seul format de sortie (de votre choix) convient parfaitement. Je voudrais cependant limiter le format comme indiqué ci-dessus (qui est déjà assez gratuit). {1134,'pm'}
, par exemple, serait inacceptable.
01:54pm
cela fonctionnerait, mais 1:54pm
pas?