gpt4 book ai didi

java - 在 while 循环中使用日历?

转载 作者:行者123 更新时间:2023-12-01 18:03:26 24 4
gpt4 key购买 nike

除了最后一个输出之外,下面的代码执行了我想要的操作。

Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(1986, 8, 20);
int year = cal.get(Calendar.YEAR);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
while (year >= cal.get(Calendar.YEAR)) {
cal.add(Calendar.DAY_OF_MONTH, 7);
System.out.println(sdf.format(cal.getTime()));
}

这是输出:

1986-09-27
1986-10-04
1986-10-11
1986-10-18
1986-10-25
1986-11-01
1986-11-08
1986-11-15
1986-11-22
1986-11-29
1986-12-06
1986-12-13
1986-12-20
1986-12-27
1987-01-03

我将使用这个 while 循环来执行不可逆的代码,并且我希望它的年份不是 1987 年。但是,1987 年显示在这里,我尝试修改 while 循环条件以获得最后一个条目为

1986-12-27

但没有效果。

所需的输出与上面的输出相同,只是没有 1987 年日期。

最佳答案

您的循环正在执行检查之后执行添加。所以你可能只想:

while (year >= cal.get(Calendar.YEAR)) {
System.out.println(sdf.format(cal.getTime()));
cal.add(Calendar.DAY_OF_MONTH, 7);
}

但是,这将更改使用的第一个值 - 因此,如果您想要与以下相同的第一个值,您可能需要在循环开始之前进行额外的 add 调用。您现在正在打印。

关于java - 在 while 循环中使用日历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38861241/

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