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
添加回答
举报