准确计算某个时间点距现在的时间差的代码 如"几分钟之前"

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
	public static String dateDiff(String startTime)
			throws ParseException {
		String format="yyyy-MM-dd HH:mm:ss";
		SimpleDateFormat sd = new SimpleDateFormat(format);
		long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数
		long nh = 1000 * 60 * 60;// 一小时的毫秒数
		long nm = 1000 * 60;// 一分钟的毫秒数
		long ns = 1000;// 一秒钟的毫秒数
		long diff;
		// 获得两个时间的毫秒时间差异
		SimpleDateFormat df = new SimpleDateFormat(format);//设置日期格式
		String endTime=df.format(new Date());// new Date()为获取当前系统时间
		diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();
		long day = diff / nd;// 计算差多少天
		long hour = diff % nd / nh;// 计算差多少小时
		long min = diff % nd % nh / nm;// 计算差多少分钟
		long sec = diff % nd % nh % nm / ns;// 计算差多少秒//输出结果
		System.out.println("时间相差:"+day+"天"+hour+"小时"+min+"分钟"+sec+"秒");
		String msg="";
		String returnMsg="";
		if(day==0&&hour==0&&min==0&&sec<60){
			returnMsg=msg +sec
					+ "秒之前";
		}else if(day==0&&hour==0&&min<60){
			returnMsg=msg +sec
					+ "分钟之前";
		}
		else if(day==0&&hour<24){
			returnMsg=msg+hour
					+ "小时之前";
		}else if(day<15){
			returnMsg=msg +day
					+ "天之前";
		}else if(day<30){
			returnMsg=msg
					+ "半个月之前";
		}else if(day<360){
			returnMsg=msg +day/30
					+ "个月之前";
	    }else{
	    	returnMsg=msg +day/360
				+ "年之前";
	   }
		System.out.println("返回结果:"+returnMsg);
		return returnMsg;
	}
	public static void main(String[] args) throws ParseException {
		dateDiff("2015-03-15 23:04:10");
	}
}

猜你喜欢

转载自zhengyunfei.iteye.com/blog/2203025
今日推荐