天天看点

小工具|计算两个日期之间的天数?

计算两个日期的间距

在开发中我们常要使用到日期格式的转换或者是计算两个时间的间距,因此很有必要自己封装一个通用的工具类方便自己以后调用使用,方便自己的开发,也可使项目更简洁。

一、当传参是两个Date类型时:

/**
     * 计算两个日期之间相差的天数
     * @param date1 较小的时间
     * @param date2  较大的时间
     * @return 相差天数
     * @throws ParseException
     * calendar 对日期进行时间操作
     * getTimeInMillis() 获取日期的毫秒显示形式
     */
    public static int daysBetween(Date date1,Date date2){
        Calendar cal = Calendar.getInstance();
        cal.setTime(date1);
        long time1 = cal.getTimeInMillis();
        cal.setTime(date2);
        long time2 = cal.getTimeInMillis();
        long between_days = (time2 - time1)/(1000*3600*24);
        return Integer.parseInt(String.valueOf(between_days));
    }           

复制

二、当传参是两个string类型时:

/**
     * 字符串日期格式的计算
     * @param date1 较小的日期
     * @param date2 较大的日期
     * @return
     * @throws ParseException
     */
    public static int daysBetween(String date1,String date2) throws ParseException{
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(date1));
        long time1 = cal.getTimeInMillis();
        cal.setTime(sdf.parse(date2));
        long time2 = cal.getTimeInMillis();
        long between_days=(time2-time1)/(1000*3600*24);
        return Integer.parseInt(String.valueOf(between_days));
    }           

复制

三、当传参是一个string类型和一个Date类型时:

/**
     * 字符串日期格式和date日期格式的计算
     * @param date1
     * @param date2
     * @return
     * @throws ParseException
     */
    public static int daysBetween(String date1,Date date2) throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(date1));
        long time1 = cal.getTimeInMillis();
        cal.setTime(date2);
        long time2 = cal.getTimeInMillis();
        long between_days=(time2-time1)/(1000*3600*24);
        return Integer.parseInt(String.valueOf(between_days));
    }           

复制

四、测试

/**
     * @param args
     * @throws ParseException
     * format() 对日期进行格式化处理
     * parse() 将日期设置为date类型
     */
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2019-04-12");
        Date date2 = sdf.parse("2019-05-12");
        Date date3 = sdf.parse(sdf.format(new Date())); //将当前时间转化成所需格式
        System.out.println(daysBetween(date1,date2));
        System.out.println(daysBetween(date1, date3));
        System.out.println(daysBetween("2019-04-12","2019-05-12"));
        System.out.println(daysBetween("2019-04-12", date3));
    }           

复制

小工具|计算两个日期之间的天数?

在看、转发和辣条会提升颜值哦~

关注我

每天进步一点点

小工具|计算两个日期之间的天数?

万水千山总是情,点个 “在看” 行不行