[英]Automatic correction of Java Calendar day of month?
我想了解的是,設置它時,有沒有最簡單的方法來校正day的值。 我的意思是:
int birthDay = 30;
int birthMonth = 1;
int birthYear = 1980;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, birthDay);
cal.set(Calendar.MONTH, birthMonth);
cal.set(Calendar.YEAR, birthYear);
2月沒有30天。另一方面,它有特殊條件,1980年是2月29天。 因此,我必須將校正后的值設為“ 1980-February-29”。 如果我超出月份范圍,則該月應最多使用一天。 如何以最簡單的方式做到這一點,並且如果我可以找到不需要編寫任何額外代碼的解決方案,而不是使用Calendar類的方法,那將是完美的。
編輯:我更改了cal.set(Calendar.MONTH,birthMonth-1); 到cal.set(Calendar.MONTH,birthMonth); 對不起
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, birthYear);
cal.set(Calendar.MONTH, birthMonth);
cal.set(Calendar.DAY_OF_MONTH, Math.min(birthDay, cal.getActualMaximum(Calendar.DAY_OF_MONTH)));
使用calendar.getActualMaximum(Calendar.DAY_OF_MONTH)查找當月的最大日期
不,目前這是唯一的方法。
當然,您可能想使用java.text.DateFormat
對象(通常是SimpleDateFormat
)從String解析日期。 如果您的輸入是String
那么這是最接近String
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.