public class datefornext14days {
public static void main(String[] args) {
final Calendar c = Calendar.getInstance();
int day=c.get(Calendar.DAY_OF_MONTH);
for (int i = 1; i<=14; i++) {
System.out.println(day);
c.add(c.get(Calendar.DAY_OF_MONTH), 1);
}
}
}
执行代码时,我收到以下错误:-
线程"main"中的异常 java.lang.IllegalArgumentException at java.util.GregorianCalendar.add(Unknown Source( at TodayDate.main(TodayDate.java:28(
我希望我的输出是 - 从当天开始,迭代到接下来的 14 天。
删除c.get(
.加法的第一个参数是单位的常量
c.add(Calendar.DAY_OF_MONTH, 1);
有关更多信息,请参阅 javadoc。
并按以下方式输出一天:
System.out.println(c.get(Calendar.DAY_OF_MONTH));
因此,您的代码必须如下所示:
public static void main(String[] args) {
final Calendar c = Calendar.getInstance();
for (int i = 1; i <= 14; i++) {
System.out.println(c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH, 1);
}
}
公共类日期下一个14天 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
int day=c.get(Calendar.DAY_OF_MONTH);
for (int i = 1; i<=14; i++) {
c.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(c.get(Calendar.DATE));
}
}
通过这个程序,我得到了接下来 14 天的所有日期。
如果你使用 java 8,那么你可以这样做:
LocalDateTime currentLocalDateTime = LocalDateTime.now();
for (int i = 1; i <= 14; i++) {
LocalDateTime newLocalDateTime = currentLocalDateTime.plusDays(i);
System.out.println(newLocalDateTime);
}
此外,如果您只需要日期而不需要时间,您可以将LocalDateTime
更改为LocalDate
。
从Java 9开始,你可以使用一个非常好的datesUntil
方法。
LocalDate
.now()
.datesUntil(start.plusDays(14))
.forEach(it -> out.print(" > " + it));
--
> 2017-04-14 > 2017-04-15 > 2017-04-16 > 2017-04-17 > 2017-04-18 > 2017-04-19 > 2017-04-20 > 2017-04-21 > 2017-04-22 > 2017-04-23 > 2017-04-24 > 2017-04-25 > 2017-04-26 > 2017-04-27
您可以在此处阅读更多内容。