首页 > 编程语言 >Java 获取天数差(只看日期不看时间)

Java 获取天数差(只看日期不看时间)

时间:2022-10-25 17:25:17浏览次数:46  
标签:date1 date2 Java get int 天数 不看 Calendar Math

    /**
     * date2比date1多的天数,只看天数,不看秒数
     *
     * @param date1
     * @param date2
     * @return
     */
    private static int calDateDistance(Date date1, Date date2) {
        
        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 = Math.min(year1, year2); i < Math.max(year1, year2); i++) {
                if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)    //闰年
                {
                    timeDistance += 366;
                } else    //不是闰年
                {
                    timeDistance += 365;
                }
            }
            return timeDistance + Math.abs(day2 - day1);
        } else {//同一年
            return Math.abs(day2 - day1);
        }
    }

标签:date1,date2,Java,get,int,天数,不看,Calendar,Math
From: https://www.cnblogs.com/hanayouco/p/16825543.html

相关文章

  • JAVA设计模式-桥接模式
    JAVA设计模式-桥接模式一、介绍桥接模式是一种结构型模式,它主要是将抽象部分和实现部分进行分离,可以独立变化,降低类与类之间的耦合度。举例:我们现在需要实现不同形状,每......
  • Javaweb知识复习--MyBatis+Mapper代理开发
    一种持久层框架,主要用于简化JDBCMyBatis应用步骤1、在数据库里面创建一个表2、创建模块,导入坐标就是新建一个Maven项目,在pom.xml里面导入mybatis相应导包依赖代码:3、......
  • Java初始化
    Java初始化1、采用init:@Autowiredpublicvoidinit(){sysDictFeignClient.dictByCode(GlobalConst.WARN_STAT_PERIOD_TYPE).getData().forEach(v->{statP......
  • JavaScript对象Date和JavaScript对象Math
    JavaScript对象DateDate:日期对象1.创建:vardate=newDate();2.方法:......
  • javascript
    requirejs是干啥的啊?曾经,我们将一些js组件放到不同的文件,然后通过script标签引入,如果几个组件有依赖,那么要小心了,你必须将被依赖的放到前面,否则的话会出现啥啥啥isundefi......
  • Java数组
    Java数组什么是数组数组是相同类型数据的有序集合。数组声明创建//声明dataType[]arrayName;//首选方法dataTpearrayName[];//创建使用new操作符创建数组dataTy......
  • JavaScriptDOM的一些方法和事件笔记:className、classList、setInterval、click、mouse
    className():替换原有类classList.add():添加类classList.remove():删除类classList.toggle():切换类setInterval(回调函数,毫秒数):间歇性定时器click:点击事件mousemove:......
  • 621 JavaScript_对象_RegExp1 and 622 JavaScript_对象_RegExp2
    JavaScript_Number1.创建varmyNum=newNumber(value);varmyNum=Number(value);参数value是要创建的Number对象的数值,或是要转......
  • java学习笔记41
    面向对象抽象类packageoopzong.oop.oop7;//abstract抽象类:类extends:单继承  (接口可以多继承)publicabstractclassAction{  //约束~有人帮我们实现 ......
  • JavaScriptDOM节点操作:parentNode、children、nextElementSibling、previousElementS
    元素.parentNode:获取元素的最近一级父级节点父元素.children:获取所有子元素元素.nextElementSibling:获取元素的下一个同级元素元素.previousElementSibling:获取元素的上......