java根據當前日期+指定天數(月份...)得到相應日期,計算兩日期之差
阿新 • • 發佈:2019-02-15
package com.utcsoft.pcapps.selfservice.controller; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Test { /** * @param args */ /** * 此函式實現:給定日期和經過天數,算出結果日期 *@author 劉鵬 其中sDate為指定日期,iDate為多少時間段(可以是 年、月、日... 具體根據iCal來確定) iCal為某種時間段例如 月:Calendar.MONTH(具體可查詢api中Calendar類) sStr為日期格式 例如:"yyyyMMdd"(具體可查詢api中Calendar類) * @param sDate * @param iDate * @param iCal * @param sStr * @return */ public String getNextDate(String sDate, int iDate,int iCal, String sStr){ String sNextDate = ""; Calendar calendar = Calendar.getInstance(); SimpleDateFormat formatter = new SimpleDateFormat(sStr); Date date = null; try { date = formatter.parse(sDate); } catch (ParseException e) { e.printStackTrace(); } calendar.setTime(date); calendar.add(iCal, iDate); sNextDate = formatter.format(calendar.getTime()); return sNextDate ; } /** * 返回兩個日期之間相差幾天 * @author 劉鵬 * @param fDate * @param oDate * @return */ public static int daysOfTwo(Date fDate, Date oDate) { Calendar aCalendar = Calendar.getInstance(); aCalendar.setTime(fDate); int day1 = aCalendar.get(Calendar.DAY_OF_YEAR); aCalendar.setTime(oDate); int day2 = aCalendar.get(Calendar.DAY_OF_YEAR); return day2 - day1; } public static void main(String[] args) throws ParseException { Test test = new Test(); String a = test.getNextDate("2014-12-31", 1, Calendar.DATE, "yyyy-MM-dd"); System.out.println(a); String str1 = "2013-08-11"; String str2 = "2013-08-15"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date d1 = simpleDateFormat.parse(str1); Date d2 = simpleDateFormat.parse(str2); int day = daysOfTwo(d1, d2); System.out.println(day); } }