java – 在两个日期之间迭代,包括开始日期?
发布时间:2020-12-15 05:11:54 所属栏目: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
对不起要求重复提问的道歉..
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). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |