java中如何得到两个日期相差几天??
在Java中,如何取得两个日期之间相差几天???         比如我的时间a字段内容为:2005-09-03         23:15                
       时间b字段内容为:2005-09-04         01:09         如何计算他们之间相差的天数是1呢,用什么函数?注意,不是指的相差24小时的完整的天数,而是日期之差。再比如a   2005-09-28   23:15   到   b   2005-10-06   00:13   相差   8天
------解决方案--------------------SimpleDateFormat smdf = new SimpleDateFormat( "yyyy-MM-dd "); 
 try { 
 Date start = smdf.parse( "2005-09-28 23:15 "); 
 Date end = smdf.parse( "2005-10-06 00:13 "); 
 long t = (end.getTime() - start.getTime()) / (3600 * 24 * 1000); 
 System.out.println(t); 
 } catch (
ParseException e) { 
 e.printStackTrace(); 
 }
------解决方案--------------------首先格式化成“年-月-日”形式 
 SimpleDateFormat smdf = new SimpleDateFormat( "yyyy-MM-dd "); 
 try { 
 Date start = smdf.parse( "2005-09-28 23:59:59 "); 
 Date end = smdf.parse( "2005-09-29 00:00:00 "); 
 long t = (end.getTime() - start.getTime()) / (3600 * 24 * 1000); 
 System.out.println(t); 
 } catch (ParseException e) { 
 e.printStackTrace(); 
 } 
 上述时间虽然只差1秒钟,但是按照上述方法计算却相差一天!!!   
 如果计算相差小时数格式化改为 "yyyy-MM-dd hh " ;计算改为:long t = (end.getTime() - start.getTime()) / (3600 * 1000); 
 其它可以一次类推了     
------解决方案--------------------import java.text.SimpleDateFormat; 
 import java.util.Date;   
 import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;   
 public class Test { 
 	public static void main(String[] args) throws Exception{ 
 		SimpleDateFormat smdf = new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss "); 
 		String result= " "; 
 		try { 
 		Date start = smdf.parse( "2005-09-28 23:59:59 "); 
 		Date end = smdf.parse( "2005-09-29 00:00:00 "); 
 		long t = (end.getTime() - start.getTime()) /1000; 
 		if(t> =60&&t <3600){ 
 			System.out.println( "相差: "+t/60+ "分钟 "); 
 		}else if(t> =3600&&t <(3600*24)){ 
 			System.out.println( "相差: "+t/3600+ "小时 "); 
 		}else if(t> =(3600*24)){ 
 			System.out.println( "相差: "+t/(3600*24)+ "天 ");		 
 		}else{ 
 			System.out.println( "相差: "+t+ "秒 "); 
 		} 
 		} catch (ParseException e) { 
 		e.printStackTrace(); 
 		} 
 	}   
 }
------解决方案--------------------public static String computeDateInterval(long time1, long time2) 
     { 
         long time = time2 - time1; 
         time = time / 1000; // 将毫秒转化为秒   
         long second = time % 60; // 秒 
         time = time / 60;   
         long minute = time % 60; // 分 
         time = time / 60;   
         long hour = time % 24; // 小时 
         time = time / 24;   
         long day = time; // 天   
         String result =  " ";   
         if (0 != day) 
         { 
             result += day +  " days  "; 
         } 
         if (0 != hour) 
         { 
             result += hour +  " hours  "; 
         } 
         if (0 != minute) 
         { 
             result += minute +  " minutes  "; 
         } 
         if (0 != second) 
         { 
             result += second +  " seconds  "; 
         }