Java闰年计算器

时间:2014-10-13 00:10:46

标签: java leap-year

我正在制作扫描仪对象以获得一年的时间并测试它是否是闰年。只想要一些反馈。这是对的吗?谢谢!

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.");
    }
  }
}

2 个答案:

答案 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.");
相关问题