2011-07-10 81 views
-2

給定任意秒數,我如何獲得年,月,日,小時和分鐘數?如何獲得特定秒數的年,月,日,小時和分鐘數?

的算法應該首先計算的年最大數,那麼月數等等...

什麼是有效的方式來做到這一點?

+5

你知道,秒數不是每年(閏年),月份(1月和2月)或每天(閏秒和夏令時切換日)不變? – nfechner

+0

你可以使用喬達嗎? – Colin

回答

3

它基本上是普通的分工。正如你可能知道......

  • 一分鐘有60秒:
    number_of_minutes := floor(number_of_seconds/60)

  • 一個小時有60分鐘的:
    number_of_hours := floor(number_of_minutes/60)
    number_of_hours := floor(number_of_seconds/(60 * 60))

  • 一天有24個小時(至少通常......見下)。

  • 一個月有28到31天之間的任何事情。

  • 一年有365或366天,或平均爲365.2425 days

我提到的最後兩個可能會要求您更多地考慮所述問題。您可以定義一個「平均」月份,然後允許您說出「x秒等於y平均月份」;或者你不會將秒轉換成幾個月。

(思考一下,如果你在談論一個天文學家或相似的,他們可能會告訴你,那天是總是整整24個小時,由於偶然的閏秒)。

+1

爲什麼downvote?我很樂意知道,以便我可以改進我的答案。 – stakx

+0

你應該清楚你說的是哪一年。您給出的價值(365.2425)是日曆年的*確切*平均長度。歷年的實際長度總是365或366天。 – svick

+1

@svick:正確。我並不認爲有必要做到這一點,因爲我的答案的重點是明確表明,幾個月和幾年不是固定的時間單位。確實,在日曆中修正時間間隔(在[s]中指定)可能實際上會將月份和年份轉換爲準確 - 但結果可能仍然令人困惑。 – stakx

相關問題