1. 程式人生 > >CCF201509 日期計算(JAVA)

CCF201509 日期計算(JAVA)

問題描述:

問題描述

  給定一個年份y和一個整數d,問這一年的第d天是幾月幾日?
  注意閏年的2月有29天。滿足下面條件之一的是閏年:
  1) 年份是4的整數倍,而且不是100的整數倍;
  2) 年份是400的整數倍。

輸入格式

  輸入的第一行包含一個整數y,表示年份,年份在1900到2015之間(包含1900和2015)。
  輸入的第二行包含一個整數dd在1至365之間。

輸出格式

  輸出兩行,每行一個整數,分別表示答案的月份和日期。

樣例輸入

2015
80

樣例輸出

3
21

樣例輸入

2000
40

樣例輸出

2
9

 

package dateCount;

import java.util.Scanner;

public class Main {

	@SuppressWarnings("resource")
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] dm1 = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
                // 平年12月日曆
		int[] dm2 = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
                // 閏年12月日曆
		Scanner sc = new Scanner(System.in);
		int y = sc.nextInt();// 第幾年
		int d = sc.nextInt();// 第幾日
		int m = 1;// 記錄月份
		int[] dm;// 12月日曆陣列
		if ((y % 100 != 0 && y % 4 == 0) || (y % 400 == 0))// 判斷是否為閏年,若為閏年則採用閏年日曆
		{
			dm = dm2;
		} else
			// 否則採用平年日曆
			dm = dm1;

		for (; d > dm[m - 1]; m++)// 月份判斷
		{
			d = d - dm[m - 1];
		}

		System.out.println(m);
		System.out.println(d);
	}

}