import java.util.Scanner;
/**
*
* 问题:
*
* 输入某年某月某日,判断这一天是这一年的第几天?
*
* @author Administrator
*
* 程序如下:
*
*/
public class Days {
static int year;
static int month;
static int day;
public static void main(String args[]){
System.out.println("请输入年月日,按Enter结束!");
Scanner s=new Scanner(System.in);
year=s.nextInt();
month=s.nextInt();
day=s.nextInt();
Days d=new Days();
System.out.println(year+"年"+month+"月"+day+"日是"+year+"年的第"+d.getDays() +"天");
}
public int getDays(){
int days=0;
int d=0;
switch(month){
case 1:
d=0;
break;
case 2:
d=31;
break;
case 3:
d=59;
break;
case 4:
d=90;
break;
case 5:
d=120;
break;
case 6:
d=151;
break;
case 7:
d=181;
break;
case 8:
d=212;
break;
case 9:
d=243;
break;
case 10:
d=273;
break;
case 11:
d=304;
break;
case 12:
d=334;
break;
}
/**判断闰年的方法:
* 普通年能被4整除且不能被100整
* 除的为闰年。(如2004年就是闰
* 年,1901年不是闰年) ;世纪年能
* 被400整除的是闰年(如2000年就是
* 闰年)
*
*/
//如果是闰年,并且月分大于2月,那么就让天数加一(因为闰年的二月多了一天,是29天)
if((year%400==0||(year%4==0&&year%100!=0))&&month>2){
d+=1;
}
days=d+day;
return days;
}
}
运行结果如下:
run:
请输入年月日,按Enter结束!
2000 01 20
2000年1月20日是2000年的第20天
成功生成(总时间:17 秒)
run:
请输入年月日,按Enter结束!
2000 3 1
2000年3月1日是2000年的第61天
成功生成(总时间:15 秒)
run:
请输入年月日,按Enter结束!
2013 4 6
2013年4月6日是2013年的第96天
成功生成(总时间:9 秒)