簡體   English   中英

如何處理兩個日期變量設置的上限和下限內的日期范圍

[英]How to do processing for a range of dates which are within the upper and lower limit set by 2 date variables

我在Java桌面應用程序中的不同日期變量中有2個日期。 現在,我想創建一個循環,對這兩個日期中的每個日期進行一些處理。 (不包括日期=日期上限值的方案,但包括日期=日期下限值的方案)。

我只是想知道Java中日期的基本用法,是否有任何簡單的方法可以循環遍歷這兩個日期之間的所有日期,然后對每個日期進行一些處理?

與日期有關的另一個問題-如何僅獲取Java中的當前系統日期以及日期變量的年份部分(要獲取日期的年份部分,我必須將date變量的整個值放入字符串中變量,然后提取代表年份的相關部分?)

這是一個示例: http : //helpdesk.objects.com.au/java/how-can-i-iterate-through-all-dates-in-a-range

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;

public class DateIterator
   implements Iterator<Date>, Iterable<Date>
{

    private Calendar end = Calendar.getInstance();
    private Calendar current = Calendar.getInstance();

    public DateIterator(Date start, Date end)
    {
        this.end.setTime(end);
        this.end.add(Calendar.DATE, -1);
        this.current.setTime(start);
        this.current.add(Calendar.DATE, -1);
    }

    public boolean hasNext()
    {
        return !current.after(end);
    }

    public Date next()
    {
        current.add(Calendar.DATE, 1);
        return current.getTime();
    }

    public void remove()
    {
        throw new UnsupportedOperationException(
           "Cannot remove");
    }

    public Iterator<Date> iterator()
    {
        return this;
    }

    public static void main(String[] args)
    {
        Date d1 = new Date();
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, 22);
        Date d2 = cal.getTime();

        Iterator<Date> i = new DateIterator(d1, d2);
        while(i.hasNext())
        {
            Date date = i.next();
            System.out.println(date);
        }
    }
}

暫無
暫無

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

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