網路上的日期計算也有不少範例,
在此分享一個自己寫的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; } }
沒有留言:
張貼留言