gpt4 book ai didi

java - 如何获取给定季度的月份

转载 作者:行者123 更新时间:2023-12-02 10:54:25 34 4
gpt4 key购买 nike

我正在尝试获取某个季度的月份。使用下面的代码,我成功从 LocalDate.now() 实例获取当前季度的月份名称。

如何从四分之一字符串(例如“Q1”)中获取四分之一月份?

int monthInt = Month.from(LocalDate.now()).firstMonthOfQuarter().getValue();
for (int j = 1; j <= 3; j++) { //for each month in quarter
System.out.println(Month.of(monthInt).name()); //January, February, March
monthInt++;
}

最佳答案

我们可以通过查看IsoFields.QUARTER_OF_YEARgetFrom声明来了解JDK是如何计算季度的:

public long getFrom(TemporalAccessor temporal) {
if (isSupportedBy(temporal) == false) {
throw new UnsupportedTemporalTypeException("Unsupported field: QuarterOfYear");
}
long moy = temporal.getLong(MONTH_OF_YEAR);
return ((moy + 2) / 3);
}

注意它如何使用公式quarter = (moy + 2)/3。因此,要找到季度的起始月份,我们只需按照 moy - moy =quarter * 3 - 2 重新排列即可。

你可以编写这样的方法:

private static List<String> monthNamesFromQuarter(int quarter) {
// you can do the validation of quarter yourself
int start = quarter * 3 - 2;
return IntStream.range(start, start + 3)
.mapToObj(Month::of)
.map(Month::name)
.collect(Collectors.toList());
}

关于java - 如何获取给定季度的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59124687/

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