2012-01-31 107 views
1

大家好我搜索了網頁,但已能夠想出解決這個問題。基本上我想將幾天到最近的一年。所以如果我有250天的價值,這應該是1年,或者如果我有400天,這將會達到2年。有任何想法嗎?四捨五入到最近的年份

+0

怎麼樣閏年?什麼是「一年」? – BrokenGlass 2012-01-31 15:43:25

+0

400更接近365,爲什麼它湊到2年?你希望1天能輪到1年嗎? – RedFilter 2012-01-31 15:56:11

回答

6

年不等長 - 應366天是1年還是2

假設一個365天的年,你想是這樣的:?

int years = (days + 364)/365; 

...確保一年的數量完全沒有變化,但是其他任何事情都會變成現實。

另一種方法是:

int years = (int) Math.Ceiling(days/365.0); 
+0

應該是Math.Ceiling ... – RedFilter 2012-01-31 15:53:44

+0

@RedFilter:修正,謝謝。怪爪哇的影響:) – 2012-01-31 15:55:51

+0

這將'0天到0年' - 這似乎確實是正確的,但我認爲這個人問應該知道這一點,因爲它應該總是四捨五入到一整年根據他的例子。 – 2012-01-31 15:59:41

0

好了,現在喬恩斯基特評論我顯然沒有站在一個機會... :(

正如下面的評論指出,他的解決辦法是,應該看的人。如果有人在懷疑這個...

int days = 400; 
int roundedYears = (days/365) + 1 
+0

你試過你的代碼嗎? :) – 2012-01-31 15:42:58

+0

嗯,是的 - 但我第一次在事故中使用%。這似乎對我有用(不佔366天)。我錯過了什麼意思? – 2012-01-31 15:44:27

+0

0天有多少年? – 2012-01-31 15:47:53