【程序14】
题目:输入某年某月某日,判断这一天是这一年的第几天?
package com.share.test11_20;
import java.util.Scanner;
/**
* 【程序14题目:<br>
* 输入某年某月某日,判断这一天是这一年的第几天?
*
* @author brx
*/
public class Test14 {
public static void main(String[] args) {
test();
}
/**
* 思路:<br>
* 将日期前面的天数相加就行了,但是要考虑到每闰年和平年的2月份天数不同,月份分为大月31天,小月30天。<br>
* 分区间求和问题,将每个月的天数从12月罗列到1月,从上往下求和,用到switch。<br>
* 当月的天数加上前面整月的天数之和,如果月份大于2月就要考虑是否是闰年,闰年再加上一天就行了。
*/
public static void test() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个年:");
int year = sc.nextInt();
System.out.println("请输入一个月:");
int month = sc.nextInt();
System.out.println("请输入一个日:");
int day = sc.nextInt();
int sum = 0;
switch (month - 1) {
case 11:
sum += 30;
case 10:
sum += 31;
case 9:
sum += 30;
case 8:
sum += 31;
case 7:
sum += 31;
case 6:
sum += 30;
case 5:
sum += 31;
case 4:
sum += 30;
case 3:
sum += 31;
case 2:
sum += 28;
case 1:
sum += 31;
case 0:
sum += day;
}
if (month > 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
sum++;
}
}
System.out.println("这是这年的第: " + sum + " 天");
}
}