检查闰年的 Java 程序

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(563)   2023-06-26 07:54:18

学习使用不同的 Java 日期时间类来检查给定年份是否为闰年。

闰年是:

  • 除了世纪年份(以 00 结尾的年份)外,可以被 4 整除。
  • 只有能被 400 整除的世纪年。例如,2000 年是闰年。下一个世纪闰年将是 2400 年。

1. 使用 LocalDate 检查闰年

给定示例使用 LocalDate.isLeapYear()Year.isLeap() 方法来确定与给定实例关联的年份是否为闰年。我们可以使用 ZonedDateTime 调用类似的方法,LocalDateTime 类。

我们可以使用 now() 方法获取当前日期实例,这将有助于检查当前年份是否为闰年

LocalDate localDate = LocalDate.now();

boolean isLeapYear = localDate.isLeapYear();  //true or false

//or

boolean isLeapYear = Year.now().isLeap();

2. 检查闰年直到 Java 7

在遗留 Java API 中,处理日期和时间的主要类是 DateCalendarGregorianCalendar。要确定闰年,我们有两种方法:

  1. GregorianCalendar.isLeapYear(int year)
  2. 确定闰年的自定义方法

无论我们使用什么方法,我们都必须从任何给定的日期或日历实例中提取年份值,然后使用上述任何方法

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class Main
{
    public static void main(String[] args)
    {
        // 1. Calendar
        Calendar cal = Calendar.getInstance();
        System.out.println( isLeapYear(cal.get(Calendar.YEAR)) );

        //2. Date
        Date date = new Date();
        System.out.println( isLeapYear(date.getYear()) );

        //3. GregorianCalendar
        GregorianCalendar gc = new GregorianCalendar();
        System.out.println( gc.isLeapYear(gc.get(GregorianCalendar.YEAR)) );
    }

    private static boolean isLeapYear(int year)
    {
        //1583 was the first year of the Gregorian Calendar
        assert year >= 1583; 

        return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
    }
}

快乐学习!!

地址:https://www.cundage.com/article/check-leap-year.html

相关阅读

学习将java.time.LocalDate转换为java.util.Date 反之亦然,使用易于理解的 Java 示例。 1.将日期转换为LocalDate Date.getTime() 方法...
学习将 java.util.Date 转换为 java.time.LocalDateTime,反之亦然理解 Java 程序。 1. 日期 -&gtl; LocalDateTime Date.ge...
学习创建新日期、获取当前日期、解析日期为字符串或格式化Date 使用 java.util.Date类。这些用例是经常需要的,将它们放在一个地方将有助于为我们许多人节省时间。 值得注意的是,没有与...
从 LocalTime 转换为 java.sql.Time 的 Java 示例,反之亦然。 请注意,Time 类添加了格式化和解析操作以支持时间值的 JDBC 转义语法。它的日期组件应设置为“零...
获取任何给定日期的第二天或前一天的 Java 示例。该示例使用旧版 java.util.Date 类以及来自 Java 8 的 java.time.LocalDate 类。 我们可以使用此示例代...
学习在 Java 中比较两个给定日期,以找出 在通用时间轴中哪个日期早,哪个日期晚。我们将看到使用以下类的日期比较示例: LocalDate、LocalDateTime 和 ZonedDateT...
学习使用 Java 中的 ZonedDateTime 方法将 ZonedDateTime.format(DateTimeFormatter) 实例转换为字符串。 1.内置格式化程序 DateTi...
了解 Java 中的 ZonedDateTime 类,如何创建其实例和其他用例,例如解析、格式化以及添加持续时间和时间段。 一、概述 java.time.ZonedDateTime 类,在 Ja...
学习检查给定日期是否是 Java 中的周末。我们将学习使用 java.util.Date 检查作为以及 Java 8 java.time.LocalDate 类. 在给定的示例中,我们假设周末是...
学习使用 ChronoUnit.DAYS.between() 和 LocalDate.until() 方法在 Java 中计算两个日期之间的天数。 1. ChronoUnit.DAYS.betw...