计算两个时间相隔多少时间段的类,可以直接拿来用哦!

计算两个时间相隔多少时间段的类,可以直接拿来用哦!
package com.wang.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 
* 项目名称:network01  
* 类名称:CalTimeUtil  
* 类描述:求持续时间  
* 创建人:王少帅  
* 创建时间:2013-11-28 下午08:53:39       
* @version
 */

public class CalTimeUtil {
    /**
     * 
    * timeGap(求pcap生成的持续时间)  
    * @param name
    * @return String 
    * @Exception
     */

    public String timeGap(String time01, String time02) {

          String []ti01 = time01.split(" ");
          String []ti02 = time02.split(" ");
          String time1 = ti01[0];
          String time2 = ti02[0];
          String hh01 = ti01[1];
          String mm01 = ti02[1];
          
          String hh = hh01.substring(0, 8);
          String mm = mm01.substring(0, 8);

          
          String min_h = hh01.substring(9);
          String min_m = mm01.substring(9);
          //得到迷你时间戳
          String min_time = (Integer.parseInt(min_m)-Integer.parseInt(min_h))+"";
          
//          System.out.println(time1+"***"+hh);
          
//          String time1="2007-10-11";
//          String time2="2007-10-09 ";
//          String hh="09:00:10";
//          String mm="10:00:00";
          
          int time=0;//相差毫秒数
          int i=0;   //天
          int s=0;//秒
              try{
               //将字符串转相应格式的时间类型
               DateFormat f = new SimpleDateFormat("yy-MM-dd");
               DateFormat t = new SimpleDateFormat("hh:mm:ss");

               Date h= new Date();
               Date m= new Date();
               Date d1 = new Date();
               Date d2 = new Date();
               //日期
               d1 = f.parse(time1);
               d2 = f.parse(time2);
              
               //调日期相减得到天数
                     i=diffDate(d1,d2);

                  try {
            //时间
            h = t.parse(hh);
            m = t.parse(mm);
            //看一下前一天的时间是否比后一天的时间小
            if(h.getTime()<m.getTime())
            {
             //如果成立,哪么天数相应去一天
             i-=1;
             time=(int)((h.getTime()+86500000 - m.getTime()) / (1000));//得到相差多少毫秒
             
            }else
            {
             time=(int)((h.getTime() - m.getTime()) / (1000));//得到相差多少毫秒
            }
            
            
           } catch (ParseException e) {
            // TODO 自动生成 catch 块
            e.printStackTrace();
           }
           
           
          //System.out.println("cccc:"+time%60);
          //根据不同的时间,做出相应的处理=====具体是什么原因我也没有弄明白
          //以下是处理秒的代码,暂时注释掉
          //if(time%60==0)
          //{
           //s=(int)time%60;//到秒
          //}else
          //{
          // s=(int)time%60-40;//到秒
          //}
          int ms=(int)time/60;//到总分钟
          int hs=0;
          if(ms>=60)
          {
            hs=(int)ms/60;//得到小时
            ms-=(hs*60+1);//剩余分
          }
              
               
          //System.out.println("h:"+h.getTime()/3600);
          //System.out.println("m:"+m.getTime());
//            System.out.println("天:"+i);
            System.out.println("相差:"+time+"秒");
//            System.out.println("时:"+hs);
//            System.out.println("分:"+ms);
//            System.out.println("秒:"+s);
              }catch(Exception e)
              {
                e.printStackTrace();
              }
            return time+"秒"+min_time; 
         }
         
        //日期相减
         public static int diffDate(java.util.Date date, java.util.Date date1) {
          return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000));
          }
         

        //返回毫秒
          public static long getMillis(java.util.Date date) {
          java.util.Calendar c = java.util.Calendar.getInstance();
          c.setTime(date);
          return c.getTimeInMillis();
          }
   
        }




原文地址:https://www.cnblogs.com/wang3680/p/3448442.html