import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 时间差
 *
 * @author JRunner
 *
 * jrunner@126.com
 */
public class Test {
 public final static int DAY_S = 24 * 60 * 60;
 public final static int HOUR_S = 60 * 60;
 public final static int MINUTE_S = 60;
 /**
  * 计算时间毫秒
  */
 private static long fromDateStringToLong(String time) {
  Date date = null; // 定义时间类型
  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  try {
   date = format.parse(time); // 将字符型转换成日期型
  } catch (Exception e) {
   e.printStackTrace();
  }
  return date.getTime(); // 返回毫秒数
 }
 
 public static String getTimeDistance(String beginTime, String endTime) {
  long startT = fromDateStringToLong(beginTime); // 开始时间
  long endT = fromDateStringToLong(endTime); // 结束时间
  return getTimeDistance(startT, endT);
 }
 
 public static String getTimeDistance(Date beginTime, Date endTime) {
  return getTimeDistance(beginTime.getTime(), endTime.getTime());
 }
 
 public static String getTimeDistance(long startT, long endT) {
  int ss = (int) ((endT - startT) / (1000)); // 共相差计秒数
  int MM = ss / MINUTE_S; // 共计相差分钟数
  int hh = ss / HOUR_S; // 共计相差小时数
  int dd = ss / DAY_S; // 共计相差天数
  System.out.println("------------------");
  System.out.println("总计相差:" + dd + "天");
  System.out.println("总计相差:" + hh + "小时");
  System.out.println("总计相差:" + MM + "分钟");
  System.out.println("总计相差:" + ss + "秒");
  System.out.println("------------------");
  if (dd > 0)
   return dd + "天" + dd % 24 + "时" + hh % 60 + "分" + MM % 60 + "秒";
  if (hh > 0)
   return hh + "时" + MM / 60 + "分" + MM % 60 + "秒";
  if (MM > 0)
   return MM / 60 + "分" + MM % 60 + "秒";
  if (ss > 0)
   return ss + "秒";
  return "不能进行计算";
 }
 public static void main(String[] args) {
  SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
  String msg = null;
  try {
   msg = Test.getTimeDistance(format.parse("2009年11月24日"), format
     .parse("2010年1月31日"));
   System.out.println(msg);
  } catch (ParseException e) {
   e.printStackTrace();
  }
  msg = Test.getTimeDistance("2009-11-24 00:00:00", "2010-1-31 00:00:00");
  System.out.println(msg);
 }
}