使用switch选择结构实现判断某年某月某日是这一年的第几天?
import java.util.Scanner;
public class Demo_29 {
/*
* 使用switch选择结构实现判断某年某月某日是这一年的第几天?
*
* */
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年、月、日:");
int year = scanner.nextInt();
int month = scanner.nextInt();
int day = scanner.nextInt();
int beforeMonthOfYear = 0;//选中月份以前的天数
for (int i = 1; i < month; i++) {
beforeMonthOfYear += getDaysInMonth(year, i);
}
int dayOfYear = beforeMonthOfYear + day;//一年的的某一天
System.out.println("给定日期 " + +year + "年" + month + "月" + day + "日是这一年的第 " + dayOfYear + "天");
}
public static int getDaysInMonth(int year, int month) {
//判断月份并给 该月份有多少天赋值 dayInMonth
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 28;//闰年返回28天
} else {
return 29;//平年返回29天
}
default:
return 0;
}
}
}
输出结果: