JAVA题库——判断闰年

一、平年&闰年的概念

根据时代的变化,对闰年的规定可能有出入。但在程序中,统一使用以下标准:
1、非世纪年:
能被4整除,但不能被100整除。
2、世纪年:
能被400整除。

博主之前对【但不能被100整除】这个条件有疑惑,觉得去掉这个条件也没有什么区别。后来发现区别在与公元100、200、300年,按规定来说它们能被100整除是平年,但如果去掉【但不能被100整除】条件,就被判定为闰年了。

二、用JAVA实现

程序如下:

	if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
		//是闰年
	}
	else {
		//是平年			
	}

三、【升级版】从键盘分别输入年、月、日,判断这一天是当年的第几天

import java.util.Scanner;

public class ZH20220409 {
	public static void main(String args[]) {
		int year = 0,month = 0,date = 0,sumDate = 0;
		Scanner input = new Scanner(System.in);
		//if(input.hasNextInt()) {//也出现了问题
			System.out.print("请输入年份:");
			year = input.nextInt();
			System.out.print("请输入月份:");
			month = input.nextInt();
			System.out.print("请输入日期:");
			date = input.nextInt();
		//}
		sumDate = date;
		switch(month) {
			case 12:
				sumDate += 30;
			case 11:
				sumDate += 31;
			case 10:
				sumDate += 30;
			case 9:
				sumDate += 31;
			case 8:
				sumDate += 31;
			case 7:
				sumDate += 30;
			case 6:
				sumDate += 31;
			case 5:
				sumDate += 30;
			case 4:
				sumDate += 31;
			case 3:
				sumDate += 28;
				if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
					sumDate++;
				}
				else {
					
				}
			case 2:
				sumDate += 31;
				break;//这里没加break导致继续执行default出bug
			default:
				break;
		}

		System.out.println(year + "年" + month + "月" + date +"日是该年第" + sumDate + "天");
	}
}

你可能感兴趣的:(JAVA题库,java)