如何在java中迭代日期范围

时间:2015-07-01 16:33:32

标签: java date iteration

     SimpleDateFormat dateformat2 = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
    Date date = new Date();
    String d=dateformat2.format(date);

现在我想从当前日期迭代到下一个3个月日期。我希望日期格式需要相同。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我不完全确定你在你的问题中的意思,但我猜它与迭代3个月的日期有关。如果是这种情况,您可以尝试这样的事情:

for(int i = 0; i < month; i++) {
    for(int j = 0; j < day; j++) {
        //do something...
}}

只需将月份设置为迭代的月数(在本例中为3),将日期设置为每月的天数。

如果有问题的月份不一定每天都有一致的天数,那么你可以尝试一些不同的东西:

首先将变量设置为迭代的总天数。您可以通过计算每个月的天数的设定定义来获得此结果。然后迭代这几天

for(int i = 0; i < daysLeftToIterate; i++) {
    //do something...
}

修改

在查看日历之后,我认为可能有一种方法可以有效地使用它来解决您的问题。您可以按照API中的描述“宽松模式”定义Calendar对象:

“日历有两种解释日历字段的模式,lenient和non-lenient。当Calendar处于宽松模式时,它接受比它产生的更广泛的日历字段值。当Calendar重新计算日历字段值以便返回时通过get(),所有日历字段都被标准化。例如,宽松的GregorianCalendar将MONTH == JANUARY,DAY_OF_MONTH == 32解释为2月1日。“

通过这样做,您可以定义搜索超过设定的天数而不是几个月。例如,您可以将整个时间段定义为Month = January,Day = 90,这将给出该年中第90天的日期。