gpt4 book ai didi

java - 如何从日历java中获取接下来7天的日期

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:34 25 4
gpt4 key购买 nike

所以,我有一个用户可以选择日期的应用程序。

他可以选择的最大日期是距当前日期最多 7 天。

现在,我只显示当月的日历。如果当前日期是 7 月 30 日,那么必须为用户提供一个选项来选择日期到 8 月 6 日,我还必须处理年份发生变化的情况,即 15 年 12 月 30 日是当前日期,+7 天提供 16 年 1 月 6 日.

下面是我用来获取当月所有天数的代码。我应该怎么做才能让它适用于上述情况。

注意:我总是有可用的当前日期。

代码:

   public class Cals {

public static void main(String args[])
{
Calendar start = Calendar.getInstance();
start.set(Calendar.DAY_OF_MONTH, Calendar.getInstance()
.getActualMinimum(Calendar.DAY_OF_MONTH));
Calendar end = Calendar.getInstance();
end.set(Calendar.DAY_OF_MONTH,
Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH));
Calendar now = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("EEE d MMM");

for (Date dt = start.getTime(); !start.after(end); start.add(
Calendar.DATE, 1), dt = start.getTime()) {

System.out.println(sdf.format(dt));
}
}
}

当前 O/p:

Wed 1 Jul
Thu 2 Jul
Fri 3 Jul
Sat 4 Jul
Sun 5 Jul
Mon 6 Jul
Tue 7 Jul
Wed 8 Jul
Thu 9 Jul
Fri 10 Jul
Sat 11 Jul
Sun 12 Jul
Mon 13 Jul
Tue 14 Jul
Wed 15 Jul
Thu 16 Jul
Fri 17 Jul
Sat 18 Jul
Sun 19 Jul
Mon 20 Jul
Tue 21 Jul
Wed 22 Jul
Thu 23 Jul
Fri 24 Jul
Sat 25 Jul
Sun 26 Jul
Mon 27 Jul
Tue 28 Jul
Wed 29 Jul
Thu 30 Jul
Fri 31 Jul

预期 O/p:

Wed 1 Jul
Thu 2 Jul
Fri 3 Jul
Sat 4 Jul
Sun 5 Jul
Mon 6 Jul
Tue 7 Jul
Wed 8 Jul
Thu 9 Jul
Fri 10 Jul
Sat 11 Jul
Sun 12 Jul
Mon 13 Jul
Tue 14 Jul
Wed 15 Jul
Thu 16 Jul
Fri 17 Jul
Sat 18 Jul
Sun 19 Jul
Mon 20 Jul
Tue 21 Jul
Wed 22 Jul
Thu 23 Jul
Fri 24 Jul
Sat 25 Jul
Sun 26 Jul
Mon 27 Jul
Tue 28 Jul
Wed 29 Jul
Thu 30 Jul
Fri 31 Jul
Sat 1 Aug
Sun 2 Aug
Mon 3 Aug
Tue 4 Aug
Wed 5 Aug
Thu 6 Aug

最佳答案

只需将 7 天添加到 end Calendar

Calendar end = Calendar.getInstance();
end.set(Calendar.DAY_OF_MONTH,
Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH));
end.add(Calendar.DATE, 7);

Calendar 会自动处理翻转

新输出...

Wed 1 Jul
Thu 2 Jul
Fri 3 Jul
Sat 4 Jul
Sun 5 Jul
Mon 6 Jul
Tue 7 Jul
Wed 8 Jul
Thu 9 Jul
Fri 10 Jul
Sat 11 Jul
Sun 12 Jul
Mon 13 Jul
Tue 14 Jul
Wed 15 Jul
Thu 16 Jul
Fri 17 Jul
Sat 18 Jul
Sun 19 Jul
Mon 20 Jul
Tue 21 Jul
Wed 22 Jul
Thu 23 Jul
Fri 24 Jul
Sat 25 Jul
Sun 26 Jul
Mon 27 Jul
Tue 28 Jul
Wed 29 Jul
Thu 30 Jul
Fri 31 Jul
Sat 1 Aug
Sun 2 Aug
Mon 3 Aug
Tue 4 Aug
Wed 5 Aug
Thu 6 Aug
Fri 7 Aug

Calendar 也能够处理年份翻转,例如...

Calendar start = Calendar.getInstance();
start.set(2015, Calendar.DECEMBER, 25);
start.set(Calendar.DAY_OF_MONTH, Calendar.getInstance()
.getActualMinimum(Calendar.DAY_OF_MONTH));
Calendar end = Calendar.getInstance();
end.setTime(start.getTime());
end.set(Calendar.DAY_OF_MONTH,
Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH));
end.add(Calendar.DATE, 7);

Calendar now = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("EEE d MMM yyyy");

for (Date dt = start.getTime(); !start.after(end); start.add(
Calendar.DATE, 1), dt = start.getTime()) {

System.out.println(sdf.format(dt));
}

在这里,我将开始日期设置为 12 月,现在输出是...

Tue 1 Dec 2015
Wed 2 Dec 2015
Thu 3 Dec 2015
Fri 4 Dec 2015
Sat 5 Dec 2015
Sun 6 Dec 2015
Mon 7 Dec 2015
Tue 8 Dec 2015
Wed 9 Dec 2015
Thu 10 Dec 2015
Fri 11 Dec 2015
Sat 12 Dec 2015
Sun 13 Dec 2015
Mon 14 Dec 2015
Tue 15 Dec 2015
Wed 16 Dec 2015
Thu 17 Dec 2015
Fri 18 Dec 2015
Sat 19 Dec 2015
Sun 20 Dec 2015
Mon 21 Dec 2015
Tue 22 Dec 2015
Wed 23 Dec 2015
Thu 24 Dec 2015
Fri 25 Dec 2015
Sat 26 Dec 2015
Sun 27 Dec 2015
Mon 28 Dec 2015
Tue 29 Dec 2015
Wed 30 Dec 2015
Thu 31 Dec 2015
Fri 1 Jan 2016
Sat 2 Jan 2016
Sun 3 Jan 2016
Mon 4 Jan 2016
Tue 5 Jan 2016
Wed 6 Jan 2016
Thu 7 Jan 2016

欢迎来到 2016 :)

我还鼓励您使用 Java 8 的 Time API 或 Joda-Time over Calendar

关于java - 如何从日历java中获取接下来7天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31716991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com