Ce que vous devez faire pour gagner ce défi est d'écrire le script "timeago" le plus court qui génère le nombre de décennies, années, semaines, jours, heures, minutes et secondes entre un horodatage Unix donné et l'heure à laquelle le script est exécuté.
Vous devez donner la différence de temps en «termes les plus bas», par exemple 1 week
non 7 days
, 9 years
non 0 decades 9 years
. Vous devez également utiliser correctement les formes plurielles, par exemple 1 day
non 1 days
.
Votre script doit être précis à plus ou moins 1 seconde près (de sorte que la deuxième méthode d'arrondi exacte n'a pas d'importance).
Time Equivalency Table
1 decade = 10 years
1 year = 31536000 seconds (not technically correct but close enough)
1 week = 7 days
1 day = 24 hours
1 hour = 60 minutes
1 minute = 60 seconds
La sortie doit être de la forme
A decade(s) B year(s) C week(s) D day(s) E hour(s) F minute(s) G second(s)
où A...G
sont tous les entiers non négatifs et le s
est uniquement là pour les pluriels.
Remarques
- L'horodatage sera toujours un temps du passé. Cela peut être négatif.
- L'entrée et la sortie peuvent être raisonnables: stdin / stdout, entrée de fonction et valeur de retour, etc.
- Vous ne pouvez pas utiliser d'outils qui le font déjà. c'est-à-dire que si votre langue a une
timesince(timestamp)
fonction intégrée, vous ne pouvez pas utiliser cette fonction.
J'ai énormément modifié cela pour le rendre plus clair dans l'espoir d'apaiser la bataille quelque peu idiote entre les nouveaux utilisateurs avec des questions peu claires et les anciens utilisateurs qui nécessitent la perfection. Ce n'était pas une question terrible (bien que maintenant elle puisse être trop similaire à cela ).
Étant donné que suffisamment de temps s'est écoulé depuis la dernière réponse, je déclare Three If By Whisky avec son implémentation Ruby de 177 octets le gagnant de ce contexte!