两个日期之间相差的天数
输入两个字符串格式的日期,计算两日期之间,相差的天数
限制条件:输入的日期字符串,格式必须为 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 }