java – 在两个日期之间迭代,包括开始日期?
作者:互联网
对不起要求重复提问的道歉..
public static void main(String[] args)throws Exception {
GregorianCalendar gcal = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM");
Date start = sdf.parse("2010.01");
Date end = sdf.parse("2010.04");
gcal.setTime(start);
while (gcal.getTime().before(end)) {
gcal.add(Calendar.MONTH, 1);
Date d = gcal.getTime();
System.out.println(d);
}
}
在上面的代码打印日期之间,但我需要打印开始日期也..
上面的代码输出是
Mon Feb 01 00:00:00 IST 2010
Mon Mar 01 00:00:00 IST 2010
Thu Apr 01 00:00:00 IST 2010
但我还需要在输出上开始约会..
请帮我解决这个问题
提前致谢..
解决方法:
在我看来,这是最好的方式:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM");
Date start = sdf.parse("2010.01");
Date end = sdf.parse("2010.04");
GregorianCalendar gcal = new GregorianCalendar();
gcal.setTime(start);
while (!gcal.getTime().after(end)) {
Date d = gcal.getTime();
System.out.println(d);
gcal.add(Calendar.MONTH, 1);
}
输出:
Fri Jan 01 00:00:00 WST 2010
Mon Feb 01 00:00:00 WST 2010
Mon Mar 01 00:00:00 WST 2010
Thu Apr 01 00:00:00 WST 2010
我们所做的就是在递增之前打印日期,然后如果日期不在结束日期之后再重复.
另一个选择是在while(yuck)之前复制打印代码或者使用do … while(也是yuck).
标签:java,calendar,simpledateformat,gregorian-calendar 来源: https://codeday.me/bug/20190714/1459501.html