首页 > 编程知识 正文

Java输入年月日计算天数

时间:2023-11-19 05:40:55 阅读:293293 作者:TJQT

本文将从输入、数据类型、日期转换、计算天数四个方面阐述如何使用Java计算指定日子与今天的天数,给出完整的代码实例。

一、输入

Java中获取用户输入可以通过Scanner类实现。下面示例创建一个Scanner对象读取用户输入年月日。

import java.util.Scanner;

public class CalculateDays {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.print("请输入年: ");
        int year = input.nextInt();

        System.out.print("请输入月: ");
        int month = input.nextInt();

        System.out.print("请输入日: ");
        int day = input.nextInt();

        input.close();

    }
}

二、数据类型

年月日是我们常规使用的日期表示方式,但Java中处理日期会用到更多的数据类型。其中,我们可以使用Calendar和Date类。

Calendar是一个抽象类,提供了很多关于日期、时间、时间段的方法。下面是使用Calendar获取指定日期方法的示例。

import java.util.Calendar;

public class CalculateDays {

    public static void main(String[] args) {

        // 获取日历实例
        Calendar calendar = Calendar.getInstance();
        // 设置日期
        calendar.set(2022, 3 - 1, 7);

        // 获取年月日:
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;
        int day = calendar.get(Calendar.DAY_OF_MONTH);

    }
}

Date是一个表示时间戳的类。使用Date类的getTime方法可以获取相对应的毫秒数,方便进行日期计算。

三、日期转换

在Java中,处理日期时往往需要进行不同数据类型之间的转换。下面给出三种类型转换示例。

1. Calendar转Date

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

public class CalculateDays {

    public static void main(String[] args) {

        // 获取日历实例
        Calendar calendar = Calendar.getInstance();
        // 设置日期
        calendar.set(2022, 3 - 1, 7);

        // Calendar转Date
        Date date = calendar.getTime();

    }
}

2. Date转Calendar

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

public class CalculateDays {

    public static void main(String[] args) {

        // 获取当前日期时间
        Date date = new Date();

        // Date转Calendar
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);

    }
}

3. 字符串转Date

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class CalculateDays {

    public static void main(String[] args) throws ParseException {

        // 时间格式
        String pattern = "yyyy-MM-dd";
        String stringDate = "2022-03-07";

        // 字符串转Date
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        Date date = format.parse(stringDate);

    }
}

四、计算天数

Java提供了两个类,Date类和Calendar类都提供了计算日期时间差的方法。下面的示例使用Calendar类的方法来计算输入日期和今天的天数。

import java.util.Calendar;
import java.util.Scanner;

public class CalculateDays {

    public static void main(String[] args) {

        // 获取当前日期
        Calendar calendarToday = Calendar.getInstance();
        // 获取用户输入的日期
        Scanner input = new Scanner(System.in);
        System.out.print("请输入年: ");
        int year = input.nextInt();
        System.out.print("请输入月: ");
        int month = input.nextInt();
        System.out.print("请输入日: ");
        int day = input.nextInt();
        input.close();

        // 设置日期
        Calendar calendarInput = Calendar.getInstance();
        calendarInput.set(year, month - 1, day);

        // 获取两个日期的毫秒差值
        long diffTime = calendarToday.getTimeInMillis() - calendarInput.getTimeInMillis();

        // 每天的毫秒数
        long diffDays = diffTime / (1000 * 60 * 60 * 24);

        System.out.println("距离输入的日期过去了 " + diffDays + "天");
    }
}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。