java实现计算时间差
 
 
正式版:

      /**
       * 计算时间差,求出两者相隔的时间
       *
       * @param nowDate
       *            当前时间
       * @param calculateDate
       *            计算的时间
       * @return
       */
      public static long calculateTime(Date nowDate, Date calculateDate) {
            long ret = 0;
            try {
                  long t = nowDate.getTime() - calculateDate.getTime();
                  long day = t / (1000 * 60 * 60 * 24);
                  long hour = t / (1000 * 60 * 60);
                  long minute = t / (1000 * 60);
                  long second = t / 1000;
 
                  // ret = ?
            } catch (Exception e) {
            }
            return ret;
      }
 
       /**
       * 计算时间差,求出时间相隔的天数,值是四舍五入 <br><pre>
       */
       public static long calculateTime4Days(Date nowDate, Date calculateDate) {
             long ret = 0;
             try {
                   long t = nowDate.getTime() - calculateDate.getTime();
//                long day = d / (1000 * 60 * 60 * 24);
                   // 四舍五入
                  Double td = 0.0;
                  td += t;
                   long day = Math.round(td / (1000 * 60 * 60 * 24));
                  
                  ret = day;
            } catch (Exception e) {
            }
             return ret;
      }
 
 

 
 
#2013-6-7补充一个计算月份的,正式版:

       //**************************************************************************
       /**
       * 计算时间差,求出时间相隔的月份 <br><pre>
       * 编写者: sven
       * Email:swnic @isoftstone.com
- 7 下午02:21:58 </pre>
       * @param boolean isBuc 是否补充:不足一月算一月,true;不足一月不算一月,false;
       * @return long 说明
       * @throws 异常类型 说明
       */
       //**************************************************************************
       public static long calculateTime4Month(Date startDate, Date endDate, boolean isBuc) {
             long monthDiff = 0;
 
             try {
//                String start = "2011-06-12";
//                String end = "2012-06-01";
//                SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
//                Date startDate = fmt.parse(start);
//                Date endDate = fmt.parse(end);
 
                  Calendar starCal = Calendar. getInstance();
                  starCal.setTime(startDate);
 
                   int sYear = starCal.get(Calendar.YEAR);
                   int sMonth = starCal.get(Calendar.MONTH);
                   int sDay = starCal.get(Calendar.DAY_OF_MONTH);
 
                  Calendar endCal = Calendar. getInstance();
                  endCal.setTime(endDate);
                   int eYear = endCal.get(Calendar.YEAR);
                   int eMonth = endCal.get(Calendar.MONTH);
                   int eDay = endCal.get(Calendar.DAY_OF_MONTH);
 
                  monthDiff = ((eYear - sYear) * 12 + (eMonth - sMonth));
 
//                boolean isBuc = true;
                   if (isBuc) {
                         // 不足一月不算一月减1,默认做法,参考公式
                         // 依据天数补充,不足一月算一月加1
                         if (sDay < eDay) {
                              monthDiff = monthDiff + 1;
                        } else if (sDay > eDay) {
                              monthDiff = monthDiff - 1;
                        }
                  }
            } catch (Exception e) {
            }
 
             return monthDiff;
      }
 

 
 
参考:

java计算时间差 Java问题通用解决代码的更多相关文章

  1. java经典算法40题-附带解决代码

    前一段时间工作比较闲,每天没有代码敲的日子有点无聊,于是为了保证自己的编程逻辑力的日常清醒,故百度了一些经典的java算法,然后自己思考编程解决问题,虽然那些东西比较基础了,但是有些题目小编看到了也是 ...

  2. java计算时间差, 日期差小结

    转自:https://blog.csdn.net/sy793314598/article/details/79544796 1.java 7中的日历类Calendar Calendar类使用其静态的g ...

  3. java精确除法计算,四舍五入 Java问题通用解决代码

    主要用java.math.BigDecimal工具类实现,想要了解BigDecimal类可以看java api   正式版:        public static Double divide() ...

  4. java 根据生日计算年龄 Java问题通用解决代码

    根据生日计算年龄可以通过Calendar实现.最简单可以考虑get(Calendar.DAY_OF_YEAR)来简单修正年龄,但是遇到生日在闰年的2月29之后,或者今年是闰年的2月29之后可能出现计算 ...

  5. java清除所有微博短链接 Java问题通用解决代码

    java实现微博短链接清除,利用正则,目前只支持微博短链接格式为"http://域名/字母或数字8位以内"的链接格式,现在基本通用 如果链接有多个,返回结果中会有多出的空格,请注意 ...

  6. java 实现新浪微博内容计数器 Java问题通用解决代码

    http://www.mr3g.net/?p=220 参考sina的js版本而来,费弄最多的时间就是java对ansii码的判断了,js直接就是isascii()函数就可以实现了,java还要想办法 ...

  7. java替换文本中所有的正则符号 Java问题通用解决代码

    开发时遇到一个需求,需要对一段文本中的所有正则符号进行转义,不然使用split分割方法分割文本的话无效,想到用替换来做,全部替换正则符号为转义后的符号   贴java实现代码:   1.测试版     ...

  8. java中按字节获得字符串长度的两种方法 Java问题通用解决代码

    jdk本身就自带获取字符串字节长度的api了,但字符串如果包含特殊符号或全半角符号或标点符号获取到的结果会有偏差,最好的证据就是新浪微博的字数统计了 // jdk自带的获取字节长度 //注意getBy ...

  9. java统计中英文字数 Java问题通用解决代码

    http://yangchao20020.blog.163.com/blog/static/483822472011111635424751/   这个不适用于新浪微博字数的统计,结果有差别,若需要可 ...

随机推荐

  1. Windows消息类型

    WM_ Window Message 窗口消息,一般用在SendMessage,PostMessage这样的消息函数中 SM_ Static Message 静态标签消息 SS_ Static Sty ...

  2. openstack token

    在openstack的token中,包含如下: 'domain', {'id': None, 'name': None}'expires', datetime.datetime(2017, 8, 9, ...

  3. 可视化web日志分析工具Logstalgia

    https://blog.csdn.net/zrools/article/details/47250661

  4. AC日记——Roma and Poker codeforces 803e

    803E - Roma and Poker 思路: 赢或输或者平的序列: 赢和平的差的绝对值不得超过k: 结束时差的绝对值必须为k: 当“?”时可以自己决定为什么状态: 输出最终序列或者NO: dp( ...

  5. (分享别人的一篇好文章,来自jackson0714)30分钟全面解析-SQL事务+隔离级别+阻塞+死锁()

    30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 阅读目录 概述: 一.事务 二.锁 三.阻塞 四.隔离级别 五.死锁 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQ ...

  6. Netty源码学习(三)NioEventLoop

    0. NioEventLoop简介 NioEventLoop如同它的名字,它是一个无限循环(Loop),在循环中不断处理接收到的事件(Event) 在Reactor模型中,NioEventLoop就是 ...

  7. uva10857(状态压缩DP)

    uva10857 题意 兔子希望在平面上 n 个点上放蛋,每个点最多放一个蛋,初始兔子在 (0, 0) 点,这里有无数个蛋,兔子可以回到这个点取蛋,兔子的速度为 \(v * 2^{-i}\)(i 为携 ...

  8. Topcoder 刷题之路_鶸的奋斗

    最近碰到的题不是水题就是坑题,实在没意思,听说神犇们都在Topcoder上刷SRM,于是我决定将SRM的DIV 1刷个遍.这里是目录 哎..好多转博客不注明出处的,这里给出本博客的出处:http:// ...

  9. Android Facebook分享功能实现

    1.下载 Facebook SDK https://developers.facebook.com/docs/Android?locale=zh_CN 2.在facebook下设置app的相关信息 3 ...

  10. django静态html中做动态变化

    在搭建网站中经常有筛选分类的需求 在django中为了简便,我们经常将某些相同部分的内容取出来单独存放形成一个base模板,其他的template继承这个base就可以使用其中的内容 但是这些相同的部 ...