gpt4 book ai didi

java - 使用 Calendar Java 获取月 XY 的最后一天

转载 作者:行者123 更新时间:2023-11-29 05:01:23 25 4
gpt4 key购买 nike

我需要获取给定月份的最后一个日期,在我的例子中,我需要获取 6 月的最后一个日期。我的代码如下:

cal.set(Calendar.DAY_OF_MONTH,
Calendar.getInstance().getActualMinimum(Calendar.DAY_OF_MONTH));
int month = cal.get(Calendar.MONTH) + 1;

if (month <= 6) {
cal.set(Calendar.DAY_OF_YEAR, Calendar.getInstance()
.getActualMaximum(Calendar.JUNE));
return (Calendar) cal;
} else {
cal.set(Calendar.DAY_OF_YEAR, Calendar.getInstance()
.getActualMaximum(Calendar.DAY_OF_YEAR));
return (Calendar) cal;
}

起初我得到实际的月份,无论是上半年还是第二个需要另一个日期,总是那半年的最后一个日期。上面的代码返回的是

2015-01-31

而不是我认为应该的 2015-06-31。我怎么可能解决这个问题?

最佳答案

不幸的是,您的代码目前到处都是 - 您无缘无故多次创建新日历,并且您正在调用 Calendar.getActualMaximum 传递错误的类型常量(值而不是字段)。

你想要这样的东西:

int month = cal.get(Calendar.MONTH) <= Calendar.JUNE
? Calendar.JUNE : Calendar.DECEMBER;
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calenday.DAY_OF_MONTH));
return cal;

但是,如果您使用的是 Java 8,我强烈建议您使用 java.time,如果您不是,我强烈建议您使用 Joda Time - 两者都是比 java 好得多的 API。 util.Calendar.

关于java - 使用 Calendar Java 获取月 XY 的最后一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31989325/

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