您的位置:首页 > 编程语言 > Java开发

java计算日期相差的天、时、分、秒

2016-06-10 22:44 337 查看

DateSpaceHelper工具类

为了便于使用封装成DateSpaceHelper工具类:

package com.date.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
*
* @author http://blog.csdn.net/u010989191 *
*/
public final class DateSpaceHelper {
//定义好查询的类型type
public static String SECOND = "second";
public static String MINUTE = "minute";
public static String HOUR = "hour";
public static String DAY = "day";

private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//格式化日期

//禁止实例化
private DateSpaceHelper(){}
/**
* 重新设置日期格式
* @param format
*/
public static void setFormat(SimpleDateFormat format) {
DateSpaceHelper.format = format;
}
/**
* 获取相差的月份
* 秒:/1000
* 分:/(1000*60)
* 时:/(1000*60*60)
* 天:/(1000*60*60*24)
* @param type 指定是查相差的秒 分 时 还是 天
* DateSpaceHelper.SECOND   查询相差的秒
* DateSpaceHelper.MINUTE   查询相差的分
* DateSpaceHelper.HOUR     查询相差的小时
* DateSpaceHelper.DAY      查询相差的天
* @param sourceDateStr 如"2016-06-01"
* @param compareDateStr 如"2016-06-01"
* @return
*/
public static long getDateSpace(String type,String sourceDateStr,String compareDateStr)
{
Integer second = 1000;
Integer minute = second*60;
Integer hour = minute*60;
Integer day = hour*24;
try {
Calendar sourceDate = Calendar.getInstance();
Calendar compareDate = Calendar.getInstance();
sourceDate.setTime(format.parse(sourceDateStr));
compareDate.setTime(format.parse(compareDateStr));
//获取每个日期的毫秒数
Long sourceLong = sourceDate.getTimeInMillis();
Long compareLong = compareDate.getTimeInMillis();
long result = -1;
switch (type) {
case "second":
result = Math.abs((sourceLong - compareLong)/second);
break;
case "minute":
result = Math.abs((sourceLong - compareLong)/minute);
break;
case "hour":
result = Math.abs((sourceLong - compareLong)/hour);
break;
case "day":
result = Math.abs((sourceLong - compareLong)/day);
break;
}
return result;
} catch (ParseException e) {
e.printStackTrace();
}
return -1;
}
}


测试类

package com.date.test;

import java.text.ParseException;

public class DateTest {
public static void main(String[] args) throws ParseException {
//测试相差的月份
System.out.println("2015-06-01 2014-06-01 相差的天数:"+DateSpaceHelper.getDateSpace(DateSpaceHelper.DAY,"2015-06-01", "2014-06-01"));
System.out.println("2015-06-01 2014-06-01 相差的小时数:"+DateSpaceHelper.getDateSpace(DateSpaceHelper.HOUR,"2014-06-01", "2015-06-01"));
System.out.println("2015-06-01 2014-06-01 相差的分钟数:"+DateSpaceHelper.getDateSpace(DateSpaceHelper.MINUTE,"2014-06-01", "2015-06-01"));
System.out.println("2015-06-01 2014-06-01 相差的秒数:"+DateSpaceHelper.getDateSpace(DateSpaceHelper.SECOND,"2014-06-01", "2015-06-01"));
}

}


测试结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java class