从明天到60天之间的所有日子,然后循环通过它们

时间:2014-11-19 14:47:56

标签: java date loops

我需要明天再加上60天,然后每天循环播放。只是想知道这样做的恰当方法是什么?

这就是我尝试过的。它以某种方式开始我的循环月份,并在2015年1月将月份显示为0。

    Calendar startCalemder = Calendar.getInstance();
    startCalemder.setTime(new Date());
    startCalemder.add(Calendar.DATE, 1);

    Calendar endCalendar = Calendar.getInstance();
    endCalendar.setTime(new Date());
    endCalendar.add(Calendar.DATE, 60);

    //loop over day by day
    for (; startCalemder.compareTo(endCalendar) <= 0;
            startCalemder.add(Calendar.DATE, 1)) {
        startCalemder.get(Calendar.YEAR); //shows year
        startCalemder.get(Calendar.MONTH); //shows month
        startCalemder.get(Calendar.DAY_OF_MONTH); //shows day
    }

3 个答案:

答案 0 :(得分:2)

你的代码没问题。你需要了解的疯狂Calendar API是0表示1月,10表示11月。

https://docs.oracle.com/javase/7/docs/api/constant-values.html#java.util.Calendar.JANUARY

答案 1 :(得分:0)

您的代码很好,但是在您使用setTime(new Date())创建新日历之前不必调用Calendar.getInstance(),这已经为您提供了设置为当前时间的新日历实例。< / p>

答案 2 :(得分:-1)

作为旁边的答案,使用优秀的Joda库:

DateTime start = new Datime().plusDays(1);
DateTime end = start.plusDays(60);
for(DateTime current = start ; current.isBefore(end) ; 
        current = current.plusDays(1)) {
    int year = current.getYear();
    int month = current.getMonthOfYear();
    int day = current.getDayOfMonth();
}