2012-01-31 4 views
1

안녕하세요. 저는 웹을 검색했지만이 문제에 대한 해결책을 찾을 수있었습니다. 기본적으로 나는 가장 가까운 해에 여러 날을 반올림하고 싶습니다. 250 일의 가치가 있다면 1 년으로 반올림해야합니다. 그렇지 않으면 400 일이 지나면 2 년으로 반올림됩니다. 어떤 아이디어?가장 가까운 연도로 올림

+0

대해 윤년? "1 년"이란 무엇입니까? – BrokenGlass

+0

400은 365에 가깝습니다. 왜 2 년까지 반올림합니까? 1 일을 1 년으로 바꾸고 싶습니까? – RedFilter

답변

6

년의 길이는 다양 - 366일가 1 년이 있어야한다 365 일 년 가정

, 당신이 원하는 것이 뭔가 같은 :?

int years = (days + 364)/365; 

... 정확히 년의 숫자가 전혀 반올림되지 않지만 다른 것은 반올림됩니다.

또 다른 대안은 다음과 같습니다

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

Math.Ceiling이어야합니다 ... – RedFilter

+0

@RedFilter : 고마워요. Java의 영향을 비난 :) –

+0

이것은 0 일을 0 년으로 '반올림'할 것입니다. 실제로 맞는 것 같습니다. 그러나 나는 묻는 사람이 이것을 항상 알고 있어야한다고 생각합니다. 항상 반올림해야합니다. 그의 모범에 따르면. –

0

음, 존 소총 아래 댓글에서 언급 한 바와 같이 기회 ... :(

을 서 있지 않는 분명히 내가 댓글을 달았 지금, 자신의 솔루션을 바라 보았다해야 하나입니다. 사람이 의심 된 경우 ...

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

코드를 사용해 보셨습니까? :) –

+0

흠, 그렇습니다.하지만 처음에는 우연히 %를 사용했습니다. 이것은 저에게 효과가있는 것 같습니다 (366 일 동안 계산되지 않음). 내가 누락 되었다는게 무슨 소리 야? –

+0

0 일 동안 몇 년이 지났습니까? –