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. Java反射常用API汇总

    “JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性” 一.类对象的获取 1.通过对象获取 Object obj = ne ...

  2. 请教一下16aspx上的源代码要如何在自己的服务器上运行

    很正常呀,,我下载的也有运行不成功的你要去他们16aspx论坛发帖子问这里很少有人回答你这样的问题

  3. UVA 624 CD【01背包+路径记录】

    You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music is o ...

  4. Codeforces Round #447 (Div. 2) C. Marco and GCD Sequence【构造/GCD】

    C. Marco and GCD Sequence time limit per test 1 second memory limit per test 256 megabytes input sta ...

  5. csu1811(树上启发式合并)

    csu1811 题意 给定一棵树,每个节点有颜色,每次仅删掉第 \(i\) 条边 \((a_i, b_i)\) ,得到两颗树,问两颗树节点的颜色集合的交集. 分析 转化一下,即所求答案为每次删掉 \( ...

  6. (转)Unity3D 开发优秀技术资源汇总

    原文:http://www.j2megame.com/html/xwzx/ty/3179.html Unity3D 博客 http://www.dapp.com.br/  by Dapp http:/ ...

  7. 为添加了自定义域名的GitHub Pages添加SSL,启用强制HTTPS(小绿锁)

    直奔主题 为什么要使用https协议? 提高网站访问安全性,网络连接都是加密的 (PS:虽然SSL并不是无懈可击的,但是我们应该尽可能提高窃听成本). 目前越来越多的浏览器会判断当前站点支不支持htt ...

  8. MyBatis参数为Integer型并赋值为0时判断失误的问题解决

    mybatis.xml中有if判断条件判断参数不为空时,赋值为0的Integer参数被MyBatis判断为空,因此不执行<if test="param != null and para ...

  9. 脑科学对基金经理的八个启示 z

    脑科学对基金经理的八个启示 第一,总想要更多.人类大脑是在物资奇缺过程中进化的,所以获得任何“资源”,如食物.性.金钱等,都可以让人感觉良好,大脑也会鼓励我们继续下去. 事实上,可卡因等药物就是“绑架 ...

  10. 修改weblogic端口的方法

    修改weblogic的端口常用的有两种方法 方法一.登录weblogic的console.如:http://localhost:7001/console/ 1).在环境--服务器节点中点击你要修改的服 ...