Pour ce challenge, nous écrivons l'heure sous la forme suivante: hh:mm:ss
Quelques exemples:
12:34:08
06:05:30
23:59:00
Le défi consiste à afficher le temps après un certain nombre d' heures , de minutes et de secondes , avec comme heure de début 00:00:00
. Vous pouvez comparer cela avec une minuterie qui a commencé à 00:00:00
.
Voici un exemple d'entrées (en utilisant STDIN ) et de sorties:
Input: 1h20m5s
Output: 01:20:05
Input: 0h100m0s
Output: 01:40:00
Après 24 heures, la minuterie se réinitialise:
Input: 25h0m0s
Output: 01:00:00
La forme de l'entrée est toujours la même:, XhYmZs
avec X
heures, Y
minutes et Z
secondes (supposez que X
, Y
et Z
sont des entiers inférieurs à 100000 et jamais négatifs)
Il s'agit de code-golf , donc le moins d'octets remporte ce défi
Réponses:
CJam, 34 octets
Essayez-le ici .
la source
Rubis -
131115107 1079784 octetsJe joue toujours au golf.
Merci pour @Doorknob pour / \ w / inshead of / h | m | s /
la source
gets.tr('ms',?h).split(?h)
->gets.split(/\w/)
.Mathematica,
133116112111 111 octetsla source
Python 2,
138126 octetsMaintenant, j'utilise regex, encore assez longtemps cependant ..
L'entrée doit être entre guillemets.
la source
C
149112 octetsTestez-le ici
Crédits à @Dennis pour se débarrasser de beaucoup de choses.
la source
main(h,m,s){scanf("%dh%dm%ds",&h,&m,&s);s+=h*3600+m*60;m=s/60;h=m/60;printf("%02d:%02d:%02d",h%24,m%60,s%60);}
(110 octets, lit de STDIN)h,m,s;main()
devrait être plus portable.main(h,m,s)
travaille avec GCC ( lien )m=s/60;h=m/60;
? Après cela, vous pouvez aussi vous en débarrassers+=
.JavaScript 110 octets
Où x est l'entrée
Je ne pense pas que ce soit le moyen le plus efficace
la source
PHP, 80
8893Octets(enregistré sous ISO-8859-1)
Fonctionne uniquement sur PHP 5 en raison de la
split
fonction obsolète . Suppose que les avis ne sont pas affichés.Comment ça fonctionne:
¤—’¢
est"[hm]"
inversé et un nom de constante valide, PHP utilise des constantes non définies comme chaîne (enregistre un caractère pour les guillemets)·Å–ÅŒ
c'est pareil pour"H:i:s"
<?=x,y
sorties x et y. À l'aide de!
, le résultat de l'$s
affectation est converti en booléen et annulé, puis converti en chaîne en sortie.(string)false === ''
split("[hm]", "XhYmZs")
divise la chaîne en[X,Y,Zs]
. Ensuite,3600*X+60*Y+Zs
c'est le nombre de secondes. PHP convertitZs
en entier commeZ
date(Z)
, utilisons ce résultat comme horodatage et imprimons sa partie horaire sous la forme "heures: minutes: secondes". En UTC (décalage 0), l'horodatage0
est1970/01/01 00:00:00
. La soustraction du décalage de fuseau horaire normalise la date au format UTC sans modifier le fuseau horaire réellement utilisé (cela a permis d'économiser 8 octets pour définir le fuseau horaire).la source
AutoIt, 208 octets
Trop long. Tester:
la source
Pyth, 40 octets
Je continue d'apprendre. Essayez-le ici!
la source
Perl 5, 84 (83 octets + 1)
Utilise le débordement de secondes ou de minutes.
Tester
la source
VBA (
150149 octets)la source
msgbox
comme sortie, vous pouvez passer à aSub
et enregistrer 2 octets. Vous pouvez également jouer au golf loin de tous les espaces blancs inutiles autour de=
et après chacun,
pour le faire tomber vers 134.JavaScript, 97 octets
la source
Invalid left-hand side in assignment
PowerShell, 84 octets
Fractionne l'entrée de ligne de commande en un tableau de chaînes basé sur l'
[hms]
expression régulière. Utilise la fonction intégrée détaillée.AddSeconds()
pour ajouter (heures * 3600, minutes * 60 et secondes) à(date 0)
un / k / aMonday, January 1, 0001, 12:00:00 AM
, puis alimente cela en-f
formatageHH:mm:ss
qui le convertira automatiquement au format d'horloge de 24 heures et le sortira.Exemple:
la source
Lua, 104 octets
la source
VB.NET (107 octets)
Première soumission pour le code golf, donc je suppose que le nombre de caractères => le nombre d'octets?
la source
Python 3, 158
Version non golfée:
la source
CJam, 50 octets
la source
GNU sed + date, 51 octets
(dont +1 octet pour l'
-r
indicateur)Cela permet simplement
date
d'ajouter le nombre d'heures, de minutes et de secondes spécifié à00:00:00
(aujourd'hui) et d'afficher la partie horaire. Recommandé pour définirTZ=UTC
ou éviter d'exécuter le programme autour d'un changement d'heure locale (par exemple, heure d'été).la source