網路上的日期計算也有不少範例,
在此分享一個自己寫的method,
有需要的人就參考看看吧!~
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TimeMethod {
public String add(String date, String type, int count) {
/*
* 增加時間add(String 日期,String D/M/Y 或 d/m/y 日/月/年,int 數量)
*
* 日期格式 yyyy/MM/dd or yyyy-MM-dd or yyyy MM dd
*
* 以yyyy/MM/dd傳入 則傳回yyyy/MM/dd 以此類推
*/
String result = "", split = "";// 分隔符號
String[] dates = null;
String[] splits = { "/", "-", " " };// 可以自行增加會用到的分隔符號
try {
for (String period : splits) {
if (date.indexOf(period) != -1) {
dates = date.split(period);
split = period;
}
}
//設定輸出日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy" + split + "MM"
+ split + "dd");
//檢查日期格式是否合法
sdf.setLenient(false);
Date dateTest=sdf.parse(date);
//設定時間 注意月份對應是0~11
Calendar cal = Calendar.getInstance();
cal.set(Integer.parseInt(dates[0]), Integer.parseInt(dates[1])-1,
Integer.parseInt(dates[2]));
if (type.equalsIgnoreCase("d")) {
cal.add(Calendar.DATE, count);
} else if (type.equalsIgnoreCase("m")) {
cal.add(Calendar.MONTH, count);
} else if (type.equalsIgnoreCase("y")) {
cal.add(Calendar.YEAR, count);
} else {
}
result = sdf.format(cal.getTime());
} catch(ParseException e){
System.err.print("日期格式錯誤 "+date);
} catch (Exception e) {
System.err.print("時間增加錯誤 時間格式為" + date);
e.printStackTrace();
}
return result;
}
}
沒有留言:
張貼留言