为什么输入2000年2月29显示的星期不正确而2008年2月29却是正确的呢?代码如下:packageprogram;importjava.util.Scanner;importjavax.swing.JOptionPane;publicclassProgram{publicst...
为什么输入2000年2月29显示的星期不正确而2008年2月29却是正确的呢?
代码如下:
package program;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Program {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
int year,month,day;
System.out.println("输入年月日");
year=input.nextInt();
month=input.nextInt();
day=input.nextInt();//输入
if(month==1)//一月为上一年的13,二月为上一年的14
{month=13;
year-=1;}
if(month==2)
{month=14;
year-=1;}
int h;
h=(day+(int)((26*(month+1))/10)+year%100+(int)(year%100/4)+(int)(year/100/4)+5*year/100)%7;//泽勒一致性
switch(h)
{
case 0:System.out.println("该天是星期六");break;
case 1:System.out.println("该天是星期日");break;
case 2:System.out.println("该天是星期一");break;
case 3:System.out.println("该天是星期二");break;
case 4:System.out.println("该天是星期三");break;
case 5:System.out.println("该天是星期四");break;
case 6:System.out.println("该天是星期五");break;
}
}
}
展开