【程序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>
* 將日期前面的天數(shù)相加就行了,但是要考慮到每閏年和平年的2月份天數(shù)不同,月份分為大月31天,小月30天。<br>
* 分區(qū)間求和問(wèn)題,將每個(gè)月的天數(shù)從12月羅列到1月,從上往下求和,用到switch。<br>
* 當(dāng)月的天數(shù)加上前面整月的天數(shù)之和,如果月份大于2月就要考慮是否是閏年,閏年再加上一天就行了。
*/
public static void test() {
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入一個(gè)年:");
int year = sc.nextInt();
System.out.println("請(qǐng)輸入一個(gè)月:");
int month = sc.nextInt();
System.out.println("請(qǐng)輸入一個(gè)日:");
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 + " 天");
}
}