zoukankan      html  css  js  c++  java
  • JAVA 比较两个日期相差的天数

      在实际的应用中,我们经常会比较两个日期相差的天数,下面我们通过java方法判断两个日期所差的额天数。    

          具体内容,请看下面的代码:

         

    package com.jd.jr.fclient.test;
    
    import org.junit.Test;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * 日期测试类
     *
     * @author zhanghao10@jd.com
     * @since 2016/3/18 0018
     */
    
    public class DateTest {
    
    
        /**
         *  使用Calendar类 辅助完成天数的差值
         *  在不涉及到跨年的情况,此种方法是没问题的
         *  但是设计跨年的情况,此种方法回出问题的哦
         *
         * 如果时间为:2016-03-18 11:59:59 和 2016-03-19 00:00:01的话差值为 1
         *
         * @throws ParseException
         */
        @Test
        public void daysOfTwo_1() throws ParseException {
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            //跨年的情况会出现问题哦
            //如果时间为:2016-03-18 11:59:59 和 2016-03-19 00:00:01的话差值为 1
            Date fDate=sdf.parse("2015-12-31");
            Date oDate=sdf.parse("2016-01-01");
            Calendar aCalendar = Calendar.getInstance();
            aCalendar.setTime(fDate);
            int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
            aCalendar.setTime(oDate);
            int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
            int days=day2-day1;
            System.out.print(days);
        }
    
        /**
         * 通过毫秒值,手动计算日期间的相关的值
         *
         * 跨年不会出现问题
         * 使用此种方法的话需要注意
         * 如果时间为:2016-03-18 11:59:59 和 2016-03-19 00:00:01的话差值为 0
         *
         * @throws ParseException
         */
        @Test
        public void daysOfTwo_2() throws ParseException {
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            //跨年不会出现问题
            //如果时间为:2016-03-18 11:59:59 和 2016-03-19 00:00:01的话差值为 0
            Date fDate=sdf.parse("2015-12-31");
            Date oDate=sdf.parse("2016-01-01");
            long days=(oDate.getTime()-fDate.getTime())/(1000*3600*24);
            System.out.print(days);
        }
    
    
    
    
    }
    

      

      

      大家可以根据实际的需要选择对应的计算方法即可。

         下面附上JS计算两个日期的相差天数的值计算方法:

         

    var date1=new Date();  //开始时间
    alert("aa");
    var date2=new Date();    //结束时间
    var date3=date2.getTime()-date1.getTime()  //时间差的毫秒数
     
    
    //计算出相差天数
    var days=Math.floor(date3/(24*3600*1000))
     
    //计算出小时数
    
    var leave1=date3%(24*3600*1000)    //计算天数后剩余的毫秒数
    var hours=Math.floor(leave1/(3600*1000))
    //计算相差分钟数
    var leave2=leave1%(3600*1000)        //计算小时数后剩余的毫秒数
    var minutes=Math.floor(leave2/(60*1000))
     
    
    //计算相差秒数
    var leave3=leave2%(60*1000)      //计算分钟数后剩余的毫秒数
    var seconds=Math.round(leave3/1000)
     
    
    alert(" 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒")
    

      

         好吧,就先到这里吧

     

  • 相关阅读:
    python中重要的模块--asyncio
    Mysql连接报错:1130-host ... is not allowed to connect to this MySql server如何处理
    驱动精灵扩展版(集成万能网卡驱动)无法自动识别网卡的解决方案
    ROS HTB限速失败原因分析和需注意事项
    按键精灵saystring无法使用的几种解决方案
    ESXI5-WIN2008R2安装域控以及额外域笔记
    centos如何使用utc时间
    NFS的安装以及windows/linux挂载linux网络文件系统NFS
    用命令行方式关闭CentOS防火墙
    CentOS6.4 上搭建NIS网络信息服务器
  • 原文地址:https://www.cnblogs.com/xiohao/p/5294412.html
Copyright © 2011-2022 走看看