开发中经常需要比较时间,写了一个简易的工具类,分享一下:
package com.ijiuyuan.common.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DiffTime {
public static void main(String[] args){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startTime = null;
Date endTime = null;
try {
startTime = sdf.parse("2014-06-24 10:19:40");
endTime=sdf.parse("2014-06-16 10:19:40");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数
long md = 1000 * 1 * 1 * 60;// 分钟的毫秒数
long sd = 1000 * 1 * 1 * 1;// 毫秒数
long diff =startTime.getTime()- new Date().getTime() ;
long day = diff / nd;// 计算差多少天
long minute=diff/md;
long second=diff/sd;
System.out.println(second);
if(diff>=nd*7){
System.out.println("预备中:"+second);
}
long endday = (endTime.getTime()- new Date().getTime()) / md;// 计算差多少天
System.out.println(endday);
if (day <= 7 && day >= 0) {
if(minute>=0)
System.out.println("即将开始");
else {
System.out.println("已结束");
}
} else if (day > 7) {
System.out.println("预备中");
} else {
System.out.println("已结束");
}
}
/**
* 时间比较
*
* 如果第一个时间大于第二时间返回1
* 等于返回0
* 小于返回-1
*
* @param firstTime
* @param secondTime
* @return
*/
public static int compare(Date firstTime,Date secondTime){
long diff =firstTime.getTime()- secondTime.getTime() ;
if(diff>0){
return 1;
}else if(diff==0){
return 0;
}else{
return -1;
}
}
/**
* 是否值过大
* @param firstTime
* @return
*/
public static boolean isTooLarge(Date firstTime){
Calendar calendar=Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.YEAR, 1000);
Date bigDate=calendar.getTime();
if(compare(firstTime, bigDate)>0){
return true;
}else{
return false;
}
}
}