2012-01-31 108 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