编写程序: 从键盘分别输入年、月、日,判断这一天是当年的第几天
注:判断一年是否是闰年的标准
1)可以被4整除,但不可被100整除或
2)可以被400整除
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int februaryDay = 28;
while (true){
System.out.println("请输入year:");
int year = sc.nextInt();
System.out.println("请输入month:");
int month = sc.nextInt();
System.out.println("请输入day:");
int day = sc.nextInt();
if (year <= 0){
System.out.println("您输入的年份有误!");
}else if ((year % 4 ==0 && year % 100 != 0) || year % 400 ==0){
//闰年
if (month == 1 || month == 3 || month == 5 || month== 7 || month == 8 || month == 10 || month == 12){
if (day > 0 && day <= 31){
date(year,month,day);
break;
}else {
System.out.println("您输入的日期有误!");
}
}else if (month == 2){
if (day > 0 && day <= 29){
date(year,month,day);
break;
}else {
System.out.println("您输入的日期有误!");
}
}else if (month == 4 || month == 6 || month == 9 || month== 11){
if (day > 0 && day <= 28){
date(year,month,day);
break;
}else {
System.out.println("您输入的日期有误!");
}
}else {
System.out.println("您输入的月份有误!");
}
}else {
//非闰年
if (month == 1 || month == 3 || month == 5 || month== 7 || month == 8 || month == 10 || month == 12){
if (day > 0 && day <= 31){
date(year,month,day);
break;
}else {
System.out.println("您输入的日期有误!");
}
}else if (month == 2){
if (day > 0 && day <= februaryDay){
date(year,month,day);
break;
}else {
System.out.println("您输入的日期有误!");
}
}else if (month == 4 || month == 6 || month == 9 || month== 11){
if (day > 0 && day <= 28){
date(year,month,day);
break;
}else {
System.out.println("您输入的日期有误!");
}
}else {
System.out.println("您输入的月份有误!");
}
}
}
}
public static void date(int year,int month,int day){
int sumDays = 0;
switch (month){
case 12:
sumDays += 30;
case 11:
sumDays += 31;
case 10:
sumDays += 30;
case 9:
sumDays += 31;
case 8:
sumDays += 31;
case 7:
sumDays += 30;
case 6:
sumDays += 31;
case 5:
sumDays += 30;
case 4:
sumDays += 31;
case 3:
if ((year % 4 ==0 && year % 100 != 0) || year % 400 ==0){
sumDays += 29;
}else {
sumDays += 28;
}
case 2:
sumDays += 31;
case 1:
sumDays += day;
break;
}
System.out.println(year+"年"+month+"月"+day+"日是"+year+"年的第"+sumDays+"天");
}
}