JAVA給定日期,計算前幾天後幾天的日期,計算兩個日期之間的天數
阿新 • • 發佈:2019-01-11
/** * 指定日期後幾天 * * @param startDay 指定日期 * @param count 天數 * @return */ String getAfterDay(String startDay, int count) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = sdf.parse(startDay); Calendar cl = Calendar.getInstance(); cl.setTime(date);cl.add(Calendar.DATE, count); return sdf.format(cl.getTime()); } catch (ParseException e) { e.printStackTrace(); } return ""; } /** * 指定日期前幾天 * * @param startDay 指定日期 * @param count 天數 * @return */ String getBeforeDay(String startDay, int count) { SimpleDateFormat sdf = newSimpleDateFormat("yyyy-MM-dd"); try { Date date = sdf.parse(startDay); Calendar cl = Calendar.getInstance(); cl.setTime(date); cl.set(Calendar.DATE, cl.get(Calendar.DATE) - count); return sdf.format(cl.getTime()); } catch (ParseException e) { e.printStackTrace();} return ""; } /** * * @param startDay 開始日期 * @param endDay 截止日期 * @return */ public static int daysBetween(String startDay, String endDay) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = null; Date date2 = null; try { date1 = sdf.parse(startDay); date2 = sdf.parse(endDay); } catch (ParseException e) { e.printStackTrace(); } Calendar cal = Calendar.getInstance(); cal.setTime(date1); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); long time1 = cal.getTimeInMillis(); cal.setTime(date2); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); long time2 = cal.getTimeInMillis(); long between_days = (time2 - time1) / (1000 * 3600 * 24); return Integer.parseInt(String.valueOf(between_days)); }