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天。
答案 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