CCF试题日期计算-Java

问题描述
  给定一个年份y和一个整数d,问这一年的第d天是几月几日?
  注意闰年的2月有29天。满足下面条件之一的是闰年:
  1) 年份是4的整数倍,而且不是100的整数倍;
  2) 年份是400的整数倍。
输入格式
  输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
  输入的第二行包含一个整数d,d在1至365之间。
输出格式
  输出两行,每行一个整数,分别表示答案的月份和日期。
样例输入
2015
80
样例输出
3
21
样例输入
2000
40
样例输出
2
9

import java.util.Scanner;

public class DateCompute {
	static Scanner sc;
	static int year;
	static int day;
	static int[] monthping = {0,31,28,31,30,31,30,31,31,30,31,30,31};
	static int[] monthlun = {0,31,29,31,30,31,30,31,31,30,31,30,31};
	public static void main(String[] args) {
		sc = new Scanner(System.in);
		year = sc.nextInt();
		day = sc.nextInt();
		deal(year,day);
		
	}
	
	public static void deal(int year,int day) {
		int sum=0;
		if(((year%4==0)&&(year%100!=0))||(year%400==0)) {
			//表示是闰年
			for(int i=1;i<monthlun.length;i++) {
				sum+=monthlun[i];
				if(sum>=day) {
					//表示在第i个月
					System.out.println(i);
					System.out.print(day-sum+monthlun[i]);
					break;
				} 
			}
		} else {
			//表示是平年
			for(int i=1;i<monthping.length;i++) {
				sum+=monthping[i];
				if(sum>=day) {
					//表示在第i个月
					System.out.println(i);
					System.out.print(day-sum+monthping[i]);
					break;
				} 
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/kidchildcsdn/article/details/83758369