A02日期处理

发布时间 2023-03-22 21:12:57作者: 缕一缕清风

import java.util.Scanner;

public class A02日期处理 {
// 输入某年某月某日,判断这一天是这一年的第几天? 年份为闰年和非闰年 闰年有366天,非闰年有365天,隔在2月份
public static void main(String[] args) {
int[][] monthArr = { // 设计一个月份天数的二维数组 montArr[0]是365天,monthArr[1]是366天
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };
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(); // 输入日
sc.close(); // 关闭扫描器,节省资源

	int[] mArr = monthArr[isRun(year)]; // 首先计算得到当年的月份天数情况数组
	// 首先先计算当月的前面月份天数之和
	int sum = 0;
	for (int i = 0; i < month - 1; i++) { // 假如你输入month是5月份,那需要计算1~4月的总天数,在数组中是下标0~3
		sum += mArr[i];
	}
	sum += day;
	System.out.println("经程序计算,可以知道你输入的是当年的第" + sum + "天。");
}

// 函数判断闰年
private static int isRun(int y) {
	return y % 400 == 0 || (y % 4 == 0 && y % 100 != 0) ? 1 : 0;
}

}