java 计算两日期天数差

/**
     * 计算天数
     * @param bdate
     * @param edate
     * @return
     */
    public int differentDays(String bdate, String edate) {
        try {
            //根据日期格式类型进行转化
            Date date1 = new SimpleDateFormat("yyyyMMdd").parse(bdate);
            Date date2 = new SimpleDateFormat("yyyyMMdd").parse(edate);
            Calendar cal1 = Calendar.getInstance();
            cal1.setTime(date1);

            Calendar cal2 = Calendar.getInstance();
            cal2.setTime(date2);
            int day1= cal1.get(Calendar.DAY_OF_YEAR);
            int day2 = cal2.get(Calendar.DAY_OF_YEAR);

            int year1 = cal1.get(Calendar.YEAR);
            int year2 = cal2.get(Calendar.YEAR);
            if(year1 != year2) {
                int timeDistance = 0 ;
                for(int i = year1 ; i < year2 ; i ++) {
                    //闰年
                    if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
                        timeDistance += 366;
                    }
                    else {
                        timeDistance += 365;
                    }
                }
                return timeDistance + (day2 - day1) ;
            }
            else {
                System.out.println("判断day2 - day1 : " + (day2-day1));
                return day2 - day1 + 1;
            }
        } catch (Exception ex) {
            logger.error("日期转换出错!", ex);
            return 0;
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在项目中遇到了计算根据生日来计算年纪的需求,由于涉及到闰年等一些问题,以及找了网上许多的方案,发现没有好的方案 所...
    ismyshellyiqi阅读 520评论 0 0
  • 计算机是如何计算两个日期之间的天数的,这个问题看起来好像很简单,但是仔细一想,好像还没那么简单,月与月之间天数不一...
    alex_zhou阅读 2,315评论 2 3
  • 不能修改月份的天数,是遗憾。继续修改。。。。。。。。。。。。。。。。。 include<iostream> inc...
    LuckTime阅读 2,439评论 0 0
  • 最近呢,比较忙都没写新的文章。(其实是懒哈哈) 好的直接进入主题。闲聊私我、(害羞脸) 最近做一个节目的项目,然后...
    小白我们走吧阅读 3,208评论 0 0
  • 厌烦 被问 我与你的话题 那是多么的令人乏味 原本 开始 我们就不在一个频道 只是被推拉着玩起了暧昧 可笑 滑稽 ...
    柚宝妈咪阅读 164评论 0 5