簡體   English   中英

自動更正Java日歷的某天?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM