我正在制作扫描仪对象以获得一年的时间并测试它是否是闰年。只想要一些反馈。这是对的吗?谢谢!
import java.util.Scanner;
public class Micro4
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int testDate = input.nextInt();
boolean divFour = (((testDate % 4) == 0));
boolean divHundred = (((testDate % 100) != 0));
boolean divFourHundred = (((testDate % 400) != 0));
if (divFour && divHundred && divFourHundred) {
System.out.println(testDate + " is a leap year.");
} else {
System.out.println(testDate + " is not a leap year.");
}
}
}
答案 0 :(得分:0)
逻辑略有错误。 2000年是闰年,但根据您的计划,它不是。正确的逻辑应该是:
if ((divFour && divHundred)||!divFourHundred) {
另外,正如Dave Galvin建议的那样,请使用更好的变量名来提高可读性。
答案 1 :(得分:0)
诀窍是把它放到代码中:
如果它可以被4整除,那么一年是闰年,但是世纪年是 除非它们被400整除,否则不要闰年。
我正在检查(年份是4的倍数而不是100的倍数)或(年份是400的倍数)。
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
System.out.println("Leap");
else
System.out.println("Not leap.");