如何在 java 中生成未来 14 天的日期

  • 本文关键字:未来 日期 java java
  • 更新时间 :
  • 英文 :

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

您可以在此处阅读更多内容。

最新更新