如何在java中生成接下来14天的日期?

时间:2017-03-28 11:55:33

标签: 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); 
        }
    }
}

执行代码时出现以下错误: -

  

线程中的异常&#34; main&#34; java.lang.IllegalArgumentException at   java.util.GregorianCalendar.add(未知来源)at   TodayDate.main(TodayDate.java:28)

我希望我的输出是 - 从当天开始并迭代到接下来的14天。

4 个答案:

答案 0 :(得分:0)

删除c.get(。 add的第一个参数是单位的常量

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);
    }

}

答案 1 :(得分:0)

public class datefornext14days {

public class OtherCharMethods 
{
    public static void main(String[] args)
   {
      Character c1 = 'A';
      Character c2 = 'A';

      System.out.printf(
            "c1 = %s\nc2 = %s\n\n", c1.charValue(), c2.toString());

      if (c1.equals(c2))
      System.out.println("c1 and c2 are equal\n");
      else
      System.out.println("c1 and c2 are not equal\n");
     } 
 } // end class OtherCharMethods

通过这个程序,我得到了接下来14天的所有日期。

答案 2 :(得分:0)

如果您使用java 8,那么您可以这样做:

LocalDateTime currentLocalDateTime = LocalDateTime.now();
for (int i = 1; i <= 14; i++) {
    LocalDateTime newLocalDateTime = currentLocalDateTime.plusDays(i);
    System.out.println(newLocalDateTime);
}

如果您只需要没有时间的日期,也可以将LocalDateTime更改为LocalDate

答案 3 :(得分:0)

从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

You can read more here