import java.util.*;
class Test{
//输入一个年月日,判断这一天是这个年的第多少天
/*
首先从控制台输入年月日 用输入流控制
*/
public static void main(String[] args){
//依次输入年月日,需要判断年月日输入是否正确,不正确重新输入
int year,month,day;
int days=0;
int d=0;
Input in=new Input();
//定义一个布尔型变量 控制 do while 循环 先让y=false,然后执行语句,如果出现错误y=true,然后重新运行
boolean y;
do{
y=false;
System.out.println("请输入年份");
year=in.input();
System.out.println("输入的年份为"+year);
System.out.println("请输入月份");
month=in.input();
System.out.println("输入的月份为"+month);
System.out.println("请输入日期");
day=in.input();
System.out.println("输入的日期为"+day);
if(month<0||month>12||day<0||day>31){
y=true;
System.out.println("输入错误,请重新输入");
}
}while(y);
//接下来计算这天是这一年的哪一天 首先每个月多少天计算出来 一三五七八十蜡 三十一天永不差
// 判断二月是闰年还是平年 闰年29 天 平年 28天 用switch结构.用for循环 将每个月的天数加起来
for(int i=1;i<month;i++){
switch(i){
case 1:
case 3:
case 5:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 7:
case 9:
case 11:
days=30;
break;
case 2:
if(year%400==0||(year%4==0&&year%100!=0)){
days=29;
}else{
days=28;
}
break;
}
d+=days;
}
System.out.println("输入的年月日为"+year+"-"+month+"-"+day);
System.out.println("这是一年中的第"+(d+day)+"天");
}
}
class Input{
public static int input(){
int value=0;
Scanner s=new Scanner(System.in);
value=s.nextInt();
return value;
}
} |
|