SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); long myTime; Date aDate2; Date aDate; long myTime2; long days = 0; try { aDate = formatter.parse(date1);// 任意日期,包括当前日期 格式成时间Date类型 myTime = (aDate.getTime() / 1000); //Date.getTime()返回的是毫秒数 // SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd"); aDate2 = formatter.parse(date2);// 任意日期,包括当前日期 myTime2 = (aDate2.getTime() / 1000); if (myTime > myTime2) { days = (myTime - myTime2) / (1 * 60 * 60 * 24)+1; } else { days = (myTime2 - myTime) / (1 * 60 * 60 * 24)+1; } } catch (Exception e) { e.printStackTrace(); } return days; }
//给定字符串格式的时间,算出n天后的日期 public static java.sql.Date getBeforeAfterDate(String datestr, int day) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); java.sql.Date olddate = null; try { df.setLenient(false); olddate = new java.sql.Date(df.parse(datestr).getTime()); } catch (ParseException e) { throw new RuntimeException("日期转换错误"); } Calendar cal = new GregorianCalendar(); cal.setTime(olddate); int Year = cal.get(Calendar.YEAR); int Month = cal.get(Calendar.MONTH); int Day = cal.get(Calendar.DAY_OF_MONTH); int NewDay = Day + day; cal.set(Calendar.YEAR, Year); cal.set(Calendar.MONTH, Month); cal.set(Calendar.DAY_OF_MONTH, NewDay); return new java.sql.Date(cal.getTimeInMillis()); } }