java两个日期相差天数

导读:本篇文章讲解 java两个日期相差天数,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

2个日期,天数相隔多少,日期有多少天

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

public class DateUtil {

    /**
     * 两日期之间的间隔
     * @param beginDate 开始时间
     * @param endDate   结束时间
     * @return 返回day
     */
    public static int getDistanceByDay(Date beginDate,Date endDate ) {
        Calendar beginCalendar = Calendar.getInstance();
        beginCalendar.setTime(beginDate);

        Calendar endCalendar = Calendar.getInstance();
        endCalendar.setTime(endDate);

        long beginTime=beginCalendar.getTimeInMillis();
        long endTime=endCalendar.getTimeInMillis();
        //先算出两时间的毫秒数之差大于一天的天数
        int betweenDays = (int)((endTime - beginTime) / (1000 * 60 * 60 *24));
        //使endCalendar减去这些天数,将问题转换为两时间的毫秒数之差不足一天的情况
        endCalendar.add(Calendar.DAY_OF_MONTH, -betweenDays);
        //再使endCalendar减去1天
        endCalendar.add(Calendar.DAY_OF_MONTH, -1);
        //比较两日期的DAY_OF_MONTH是否相等
        if(beginCalendar.get(Calendar.DAY_OF_MONTH)==endCalendar.get(Calendar.DAY_OF_MONTH)){
            return betweenDays + 1;    //相等说明确实跨天了
        } else{
            return betweenDays;    //不相等说明确实未跨天
        }
    }

    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE,32);
        System.out.println(getDistanceByDay(new Date(),calendar.getTime()));
    }
}

也可以在MySql使用函数TimeStampdiff,获得日期差

SELECT id,user_name,TIMESTAMPDIFF(DAY,CURDATE(),expireDate) FROM t_user

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107087.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!