我使用下面的代碼來檢查的人的生日:日期跳過一年計算下一個生日日期
public class Test_Year {
static int yearsInterval =1;
static int yearsSpecial =0;
static Date dateYearsReg;
public static void main(String[] args){
yearsToNotify(2013, "0001-10-02");
}
public static void yearsToNotify(int yearsElapsedSinceBirth, String dateOfBirth){
Date dt = Convert(d);
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
System.out.println();
yearsSpecial = yearsInterval*(1+(years/yearsInterval));
System.out.println(yearsSpecial);
cal.add(Calendar.YEAR, yearsSpecial);
dateYearsReg = cal.getTime();
System.out.println(dateYearsReg);
}
public static Date Convert(String S){
String dateStr = S;
Date d1 = null ;
try {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
d1 = f.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return d1;
}
}
理想情況下,上述應該給我的下一個生日和今年應該是2014年,但是我得到2015年的一年。系統日期是2014年10月1日的第一天。任何提示?
在這個保護區裏,如果我給這樣的電話:yearsToNotify(41,「1972-10-17」);我得到正確的值。看來這是與結果的問題時,我用一年0001
你能明確什麼是年,d的'yearsToNotify(int years,String d)'函數? – deKajoo 2014-10-01 10:09:44
年份是自出生以來經過的年數,d是出生日期。對不起,我習慣於不使用標準變量名稱。 – Skynet 2014-10-01 10:10:36