簡體   English   中英

如何在java中迭代日期范圍

[英]How to iterate over range of date in java

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

現在我想從當前日期迭代到下一個 3 個月的日期。我想日期格式需要相同。 有什么建議嗎?

我不完全確定您在問題中的意思,但我猜這與迭代日期 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 中的描述以“寬松模式”定義日歷對象:

“日歷有兩種解釋日歷字段的模式,寬松和非寬松。當日歷處於寬松模式時,它接受比它產生的更廣泛的日歷字段值。當日歷重新計算日歷字段值以通過 get( ),所有日歷字段都被規范化。例如,寬松的 GregorianCalendar 將 MONTH == JANUARY, DAY_OF_MONTH == 32 解釋為二月 1。”

通過這樣做,您可以定義搜索設定的天數,而不是數月。 例如,您可以將整個時間段定義為 Month=January, Day=90,這將給出一年中第 90 天的日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM