公共類日期選項{
private static final String pattern = " yyyy-MM-DD ";
private static SimpleDateFormat SDF = new SimpleDateFormat(pattern);
私有靜態掃描器scan =新掃描器(system . in);
//日期判斷
公共靜態布爾值isValdateDate(字符串strDate) {
布爾isPassed = false
SDF . set letterant(false);
if (strDate!= null & amp& ampstrdate . length()& gt;0) {
嘗試{
Date dt check =(Date)(SDF . parse(strDate));
string strCheck = SDF . format(dt check);
if (strDate.equals(strCheck)) {
isPassed = true
}否則{
isPassed = false
}
} catch(異常e) {
isPassed = false
}
}
return isPassed
}
//根據輸入返回日期。
公共靜態日期值Of(String strDate) {
Date date = null
嘗試{
date =(date option . isvaldatedate(strDate)?sdf.parse(strDate)
:null);
} catch (ParseException e) {
e . printstacktrace();
}
返回日期;
}
//測試
公共靜態void main(String[] args) {
Date[] dates =新日期[2];
for(int I = 0;我& lt2;i++) {
System.out.println("輸入"+(i+1)+"年、月、日(月用2位數表示):");
string buffer line = new string buffer();
for(int j = 0;j & lt3;j++) {
line . append(scan . nextline()+"-");
dates[I]= date option . value of(line . tostring()。substring(0,line . length()-1));
}
}
if(日期[0]!= null & amp& amp日期[1]!= null) {
int days =(int)math . ABS((dates[0])。getTime() - dates[1]。getTime())
/ (24 * 60 * 60 * 1000));
System.out.println("它們之間的距離"+days+" days ");
int afterDays = 2;
長時間1 =日期[0]。getTime()+24 * 60 * 60 * 1000 * afterDays;
長時間2 =日期[1]。getTime()+24 * 60 * 60 * 1000 * afterDays;
日期[0]。setTime(time 1);
日期[1]。setTime(time 2);
System.out.println(afterDays+"天後,兩者都是:\n "
+ sdf.format(dates[0]) + "\n "
+ sdf.format(日期[1]);
}否則{
System.out.println("輸入錯誤!");
}
}
}
//除了日期判斷,其他函數可以用日歷適當處理,也可以單獨寫成方法。