版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_29110265/article/details/84229506
问题描述: | 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输出格式 输出两行,每行一个整数,分别表示答案的月份和日期。 样例输入 2015 样例输出 3 样例输入 2000 样例输出 2 |
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);
}
}