Java 计算两日期相差年数

1. 概述

在 Java 中,我们可以使用 java.time.LocalDate 类来计算两个日期之间的年数差异。这个类提供了一些便捷的方法来计算日期之间的差异,包括年、月、周和天。下面是计算两日期相差年数的流程图:

journey
    title 计算两日期相差年数

    section 准备工作
        step 获取两日期
        step 初始化 LocalDate 对象

    section 计算年数差异
        step 获取起始日期的年份
        step 获取结束日期的年份
        step 计算年数差异

    section 输出结果
        step 打印年数差异

2. 实现步骤

以下是实现计算两日期相差年数的步骤及相应的代码:

  1. 准备工作: 首先,我们需要获取两个日期作为输入。可以使用 Scanner 类来从控制台读取用户的输入。然后,我们需要使用这两个日期来初始化 LocalDate 对象。
import java.time.LocalDate;
import java.util.Scanner;

public class DateDifference {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入起始日期(格式:yyyy-MM-dd):");
        String startDateStr = scanner.nextLine();
        LocalDate startDate = LocalDate.parse(startDateStr);

        System.out.print("请输入结束日期(格式:yyyy-MM-dd):");
        String endDateStr = scanner.nextLine();
        LocalDate endDate = LocalDate.parse(endDateStr);

        // 计算相差年数的代码将在后面给出
    }
}
  1. 计算年数差异: 接下来,我们需要计算起始日期和结束日期之间的年数差异。可以使用 getYear() 方法获取每个日期的年份,然后计算差值。
int startYear = startDate.getYear();
int endYear = endDate.getYear();
int difference = endYear - startYear;
  1. 输出结果: 最后,我们将打印出年数差异。
System.out.println("两日期相差 " + difference + " 年");

3. 完整代码

下面是完整的代码示例:

import java.time.LocalDate;
import java.util.Scanner;

public class DateDifference {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入起始日期(格式:yyyy-MM-dd):");
        String startDateStr = scanner.nextLine();
        LocalDate startDate = LocalDate.parse(startDateStr);

        System.out.print("请输入结束日期(格式:yyyy-MM-dd):");
        String endDateStr = scanner.nextLine();
        LocalDate endDate = LocalDate.parse(endDateStr);

        int startYear = startDate.getYear();
        int endYear = endDate.getYear();
        int difference = endYear - startYear;

        System.out.println("两日期相差 " + difference + " 年");
    }
}

4. 测试案例

为了验证我们的代码是否正确,我们可以运行一些测试案例。以下是一些示例输入和输出:

输入:

请输入起始日期(格式:yyyy-MM-dd):1990-01-01
请输入结束日期(格式:yyyy-MM-dd):2020-06-30

输出:

两日期相差 30 年

输入:

请输入起始日期(格式:yyyy-MM-dd):2000-02-29
请输入结束日期(格式:yyyy-MM-dd):2022-02-28

输出:

两日期相差 22 年

5. 总结

通过使用 java.time.LocalDate 类,我们可以轻松地计算两个日期之间的年数差异。在本文中,我们展示了计算两日期相差年数的流程,并提供了相应的实现步骤和代码示例。希望这篇文章对刚入行的小白有所帮助!