首页 > 代码库 > 两个日期之间相差的天数

两个日期之间相差的天数

输入两个字符串格式的日期,计算两日期之间,相差的天数

限制条件:输入的日期字符串,格式必须为 yyyy-MM-dd

方法一:

 1     /** 
 2      *两个日期(字符串 格式:yyyy-MM-dd)的间隔天数
 3      *
 4      * @param smdate 较小的时间 
 5      * @param bdate  较大的时间 
 6      * @return 相差天数 
 7     */  
 8     public static int daysBetween(String smdate,String bdate) throws ParseException{  
 9         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
10         Calendar cal = Calendar.getInstance();    
11         cal.setTime(sdf.parse(smdate));    
12         long time1 = cal.getTimeInMillis();                 
13         cal.setTime(sdf.parse(bdate));    
14         long time2 = cal.getTimeInMillis();         
15         long between_days=(time2-time1)/(1000*3600*24);  
16             
17        return Integer.parseInt(String.valueOf(between_days));     
18     } 

 

方法二:再加限制,只能计算用一年时间区间内容的。跨年计算将产生负值

 1     /**
 2      * 两个日期字符串 的时间差(天数)
 3      *             【限制条件:只能计算,同一年的时间区间】
 4      * 
 5      * @param @param startTime
 6      *                         格式:yyyy-MM-dd
 7      * @param @param endTime
 8      *                         格式:yyyy-MM-dd
 9      * @param @return    设定文件 
10      * @return int    返回类型 
11      *
12      */
13     public static int daysBetween(String startTime, String endTime) throws ParseException{
14 
15         Calendar aCalendar = Calendar.getInstance();
16         Date startDate = null; 
17         Date endDate = null; 
18         
19         try {  
20             startDate = new SimpleDateFormat("yy-MM-dd").parse(startTime);  
21             endDate = new SimpleDateFormat("yy-MM-dd").parse(endTime);  
22         } catch (ParseException e) {  
23             e.printStackTrace();  
24         }  
25         
26         aCalendar.setTime(startDate);
27 
28         int startDay = aCalendar.get(Calendar.DAY_OF_YEAR);
29 
30         aCalendar.setTime(endDate);
31 
32         int endDay = aCalendar.get(Calendar.DAY_OF_YEAR);
33 
34         return endDay - startDay;
35 
36      }

 

两个日期之间相差的天数