首页 > 其他分享 >计算两个时间相隔多少时间段的类,可以直接拿来用哦!

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

时间:2022-11-29 14:08:12浏览次数:40  
标签:String int System println 时间段 Date 拿来 相隔 out

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();
}

}

​​



作者:少帅




标签:String,int,System,println,时间段,Date,拿来,相隔,out
From: https://blog.51cto.com/u_15683012/5894897

相关文章