通过键盘输入某年某月某日,计算并输出这一天是这一年的第几天。例如,2001年3月5日是这一年的第64天。
注意:使用分支结构语句实现。
package first;
import java.util.Scanner;
//通过键盘输入某年某月某日,计算并输出这一天是这一年的第几天。例如,2001年3月5日是这一年的第64天。
public class 年月日问题 {
public static void main(String[] args) {
int year,mouth,days;
int day=0;
//累计天数
int d=0;
int e=0;
Scanner scanner=new Scanner(System.in);
do {
System.out.println("请输入年:");
year=scanner.nextInt();
System.out.println("请输入月:");
mouth=scanner.nextInt();
System.out.println("请输入日");
days=scanner.nextInt();
if (mouth < 0 || mouth > 12 || days < 0 || days > 31) {
System.out.println("输入错误!");
e = 1;
}
}while (e == 1);
for (int i=1;i<mouth;i++){
switch (i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:{day=31;break; }
case 4:
case 6:
case 9:
case 11:{day=30;break;}
case 2:{
/*闰年:1:非整百年数除以4,无余为闰,有余为平;2:整百年数除以400,无余为闰有余平
* 二月:平年28天、闰年29天*/
if ((year%100!=0 && year%4==0)||(year%100==0 &&year%400==0)){
day=29;
}else {
day=28;
}
}
default:break;
}
d+=day;
}
System.out.println(year+"年"+mouth+"月"+days+"日是这一年的第"+(d+days)+"天。");
}
}