如何对2个日期变量设置的上下限范围内的日期进行处理

发布于 2024-12-07 18:30:20 字数 282 浏览 0 评论 0原文

我在 java 桌面应用程序中的不同日期变量中有 2 个日期。现在我想创建一个循环,对这两个日期中的每个日期进行一些处理。 (不包括日期 = 日期上限值的情况,但包括日期 = 日期下限值的情况)。

我确实了解java中日期的基本用法,我只是想知道,是否有任何简单的方法可以循环遍历这两个日期之间的所有日期,然后对每个日期进行一些处理?

与日期相关的另一个问题-如何仅获取java中的当前系统日期以及日期变量的年份部分(为了获取日期的年份部分,我是否必须将日期变量的整个值放入字符串中变量,然后提取代表年份的相关部分?)

I have with me 2 dates in different date variables in a java desktop application. Now I want to create a loop that does some processing for each date within these 2 dates. (Excluding scenario where date= Upper bound value of date but including scenario where date=lower bound value of date).

I do understand basic usage of dates in java, I just want to know, is there any easy way of looping through all dates between these 2 dates, and then do some processing for each date?

Another question related to dates- how do I obtain only the current system date in java, as well as the year portion of a date variable (For getting year portion of a date do I have to put the entire value of date variable into a string variable and then extract relevant portion that represents year?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何以笙箫默 2024-12-14 18:30:20

这是一个示例: 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);
        }
    }
}

Here is a sample: 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);
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文