Java程序检查是否是闰年


2022年3月29日, Learn eTutorial
1685

在这里,我们将解释如何编写一个Java程序来检查一个年份是否是闰年。所以我们首先需要了解什么是闰年以及如何检查一个年份是否是闰年。

要理解这个例子,您应该具备以下Java编程知识:

什么是闰年?

一个普通年份有365天。闰年是指有366天的年份。它大多每四年出现一次。如果一个年份有2月29日,那么这个年份就是闰年

如何检查一个年份是否是闰年?

  • 如果一个年份是闰年,那么该年份可以被4整除,除了以00结尾的年份。

                 例如:2020

  • 如果一个年份以00结尾,那么我们必须检查它是否也能被400整除。如果该年份能被400整除,那么它就是闰年。

                例如:2000                 

如何实现检查一个年份是否是闰年的程序?

所以我们需要声明一个带有公共修饰符的类LYear 。然后从用户读取年份并将其保存到变量yr中。然后使用if语句检查yr % 4是否等于零。如果等于零,则再检查yr % 100是否等于零以及yr % 400是否等于零。如果这两个条件都为真,则将flag设置为true。否则将flag设置为false。如果yr % 4等于零且yr % 100不等于零,则将flag设置为true,否则将flag设置为false。然后我们需要检查flag的值。如果flag等于true,则显示该年份是闰年。如果flag等于false,则显示该年份不是闰年。

算法

步骤1:声明带有public 修饰符的类 LYear 

步骤2:打开main() 函数开始程序,Java程序执行从main()开始

步骤3:声明变量yr为整数类型,flag为布尔类型。并将flag的值初始化为false。

步骤4:使用扫描器从用户读取年份并存入变量yr中。

步骤5:检查if yr % 4是否等于零,如果为真则执行步骤6。否则执行步骤8。

步骤6:检查if yr % 100是否等于零。如果不等于零,则将flag 设置为true。

步骤7:如果yr % 100等于零,则检查yr % 400是否等于零,如果为真则将flag设置为true,否则将flag设置为false。然后转到步骤9。

步骤8:如果yr % 4不等于零,则将flag设置为false。

步骤9:如果flag等于true,则显示该年份是闰年。否则显示该年份不是闰年。             

Java 源代码

                                          import java.util.Scanner;
public class LYear {

    public static void main(String[] args) {

        int yr;
        boolean flag = false;
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the year : ");//Read the Year from the user.
        yr = sc.nextInt();
        if(yr % 4 == 0)
        {
            if( yr % 100 == 0)
            {
                // if the year is divisible by 400 then it is leap year.
                if ( yr % 400 == 0)
                    flag = true;
                else
                    flag = false;
            }
            else
                flag = true;
        }
        else
            flag = false;

        if(flag==true)
            System.out.println("It  is a leap year!");
        else
            System.out.println("It is not a leap year!");
    }
}
                                      

输出

Enter the year : 2000
2000 is a leap year!

Enter the year : 2001
2001 is not a leap year!