2014-02-10 15 views
0

我現在正在學習Java,並且在這裏瞭解使用切換器時遇到了一些問題。如果有人能夠向我解釋簡單的話,我會非常感激。 因此,這裏的代碼:需要幫助瞭解此切換代碼 - 幾個月的天數

public class SwitchDemo2 { 
public static void main(String[] args) { 
int month=3; 
int year=2000; 
int NumDays=0; 
switch(month) { 
case 1: case 3: case 5: case 7: case 8: case 10: 
case 12: NumDays=31; break; 
case 4: case 6: case 9: case 11: NumDays=30; 
break; 
case 2: if (((year%4 == 0) && !(year%100==0)) || 
(year%400==0)) 
    NumDays=29; 
else NumDays=28; 
break; 
default: System.out.println("Invalid month."); 
break;} 
System.out.println("Number of Days= "+NumDays); 
}} 

什麼我不明白的是definiton後殼2「的一年%4 == 0」 - 好吧,這是有道理的,這是一個閏年,但怎麼樣! (年%100 == 0)或(年%400 == 0)?我們爲什麼要使用它?

在此先感謝!

+2

HTTP ://en.wikipedia.org/wiki/Leap_year#Algorithm – assylias

+0

https://en.wikipedia.org/wiki/Leap_year - 它是閏年定義的一部分。 –

+0

mod 100和400是閏年定義的一部分 –

回答

1

到閏年的定義:

,如果今年是被400整除然後is_leap_year 否則,如果今年是由100整除那麼如果一年not_leap_year 否則被4整除然後is_leap_year 其他not_leap_year