2 回答

TA貢獻1863條經驗 獲得超2個贊
java.time
LocalDate date = LocalDate.of(2019, Month.DECEMBER, 25);
switch (recurrence) {
case "Bi-Weekly": {
date = date.plusWeeks(2);
break;
}
case "Month": {
date = date.plusMonths(1);
break;
}
case "Quarterly": {
date = date.plusMonths(3);
break;
}
case "Half Yearly": {
date = date.plusMonths(6);
break;
}
case "Year": {
date = date.plusYears(1);
break;
}
default:
System.err.println("Unrecognized recurrence: " + recurrence);
break;
}
System.out.println("Added for " + recurrence + " gave: " + date);
嘗試使用字符串(以不同的順序)給出的差異代碼:
Added for Bi-Weekly gave: 2020-01-08
Added for Year gave: 2020-12-25
Added for Quarterly gave: 2020-03-25
Added for Half Yearly gave: 2020-06-25
Added for Month gave: 2020-01-25
您的日歷活動是否也有時間?沒問題:如果使用 a 或 a 而不是 .ZonedDateTimeLocalDateTimeLocalDate
您使用的類設計不佳且已過時。我發現java.time,現代Java日期和時間API,使用起來要好得多。這就是為什么我想向您展示此選項的原因。Calendar
問:我可以在 Android 上使用 java.time 嗎?
是的,java.time在較舊和較新的Android設備上運行良好。它只需要至少Java 6。
在Java 8及更高版本以及較新的Android設備(從API級別26開始)中,現代API是內置的。
在Java 6和7中,獲得ThreeTen Backport,現代類的backport(ThreeTen for JSR 310;請參閱底部的鏈接)。
在(較舊的)Android上使用Android版本的ThreeTen Backport。它被稱為ThreeTenABP。并確保從中導入帶有子包的日期和時間類。org.threeten.bp
添加回答
舉報