2011-07-10 17 views
-2

Étant donné un nombre arbitraire de secondes, comment puis-je obtenir le nombre d'années, mois, jours, heures et minutes?Comment obtenir le nombre d'années, mois, jours, heures et minutes d'un certain nombre de secondes?

L'algorithme doit d'abord calculer le nombre maximal d'années, le nombre de mois et ainsi de suite ...

Qu'est-ce qu'un moyen efficace de le faire?

+5

Connaissez-vous , que le nombre de secondes n'est pas constant par année (années bissextiles), par mois (janvier par rapport à février) ou par jour (secondes intercalaires et jours d'échange de l'heure d'été)? – nfechner

+0

Etes-vous autorisé à utiliser Joda? – Colin

Répondre

3

Il s'agit principalement d'une division simple. Comme vous le savez ...

  • Une minute a 60 secondes:
    number_of_minutes := floor(number_of_seconds/60)

  • Une heure a 60 minutes:
    number_of_hours := floor(number_of_minutes/60) ou
    number_of_hours := floor(number_of_seconds/(60 * 60))

  • Un jour a 24 heures (au moins généralement ... voir ci-dessous.)

  • Un mois a quelque chose entre 28 à 31 jours.

  • Une année a 365 ou 366 jours, ou 365.2425 days en moyenne.

Les deux derniers que j'ai mentionnés peuvent vous obliger à réfléchir davantage au problème énoncé. Soit vous définissez un mois "moyen", ce qui vous permet ensuite de dire "x secondes égal y mois moyens"; ou vous ne convertissez pas vos secondes en mois du tout.

(En pensant à ce sujet, si vous parliez à un astronome ou similaire, ils seraient probablement vous dire qu'un jour est pas toujours exactement 24 heures, en raison du saut occasionnel seconde.)

+1

Pourquoi la downvote? J'apprécierais de savoir pour que je puisse améliorer ma réponse. – stakx

+0

Vous devriez préciser en quelle année parlez-vous. La valeur que vous avez donnée (365,2425) est la longueur moyenne * exacte * de l'année civile. Cette durée réelle d'une année civile est toujours exactement de 365 ou 366 jours. – svick

+1

@svick: Correct. Je n'ai pas jugé nécessaire d'être aussi précis, étant donné que le but de ma réponse est de préciser que les mois et les années ne sont pas des unités de temps constantes. Il est vrai que la fixation d'un intervalle de temps (spécifié dans [s]) dans un calendrier peut en fait rendre la conversion en mois et en années précise - mais les résultats peuvent encore prêter à confusion. – stakx

Questions connexes