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. mysql中数据类型的长度

    这是一篇很全面的博客的网址 http://qimo601.iteye.com/blog/1622368 下图是其中一部分截图,在mysql数据库中新建数据表时有个长度的设置

  2. 【原创】CMD命令设置IP地址

    问题描述 在实际工作中,尤其是像我们这种BI分析人员,在做项目的时候,时常都需要因客户的不同随时切换不同的网络环境,有时可能需要在公司和客户之间来回的穿梭.交替.问题也就随之而来:每次客户那里都需要设 ...

  3. django自定义signal的发送和接收样例

    想在项目中用上,就实习一下. # coding:utf8 from django.dispatch import Signal from django.dispatch import receiver ...

  4. JquerySession使用

    添加数据 $.session.set('key', 'value') 删除数据 $.session.remove('key'); 获取数据 $.session.get('key'); 清除数据 $.s ...

  5. Flash 3D学习计划

    1.理解并记住3D渲染的一般管线流程(一天). 2.理解世界,取景,投影变换,并理解投影坐标系(一天). 3.学习VB,IB相关,理解三角形顶点顺序:在屏幕上显示2D矩形,并实现缩放,平移,旋转(三天 ...

  6. 动态路由协议(3)--ospf

    1.设置pc ip 网关 192.168.1.1 192.168.1.254 192.168.4.1 192.168.4.254 2.设置路由器 (1)设置接口ip Router(config-/ R ...

  7. C#实现简单的字符串加密

    最近用到一些字符串加密,而.net中提供的加密算法中用起来比较复杂,便简单的封装了一下,方便日后使用.     public class Encrypt    {        static Enco ...

  8. 如何在AutoCAD中将卫星底图变为有坐标参考信息的

    这篇博文首先没有图,主要是博主太懒了,不想再截图,我把过程说清楚也可以的.特此说明. (1)将下载好的瓦片拼接好大的地图 (2)将其导入到ArcGIS中,定义其地理坐标,如WGS84:然后将其其投影为 ...

  9. #if 条件编译

    1.格式: #if constant-expression statements #elif constant-expression statements #else statements #endi ...

  10. 我的MAC可能在设置环境变量的时候设置错了,现在整个MAC的vi,ls等命令都执行不了了。

    1,在命令行中输入export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin这样可以保证命令行命令暂时可以使用.命令执行完之后先不要关闭终端或者c ...