【问题标题】:Subtract fiscal year quarters from current date using Java LocalDate使用 Java LocalDate 从当前日期减去财政年度季度
【发布时间】:2019-07-29 15:23:22
【问题描述】:

通过使用 Java LocalDate 我如何从当前季度中减去八个季度?

例如:

2019 年第三季度 -(8 x 季度)= 2017 年第四季度

我试过了

LocalDate.now(ZoneId.of("Europe/London"));
now.minus(1, IsoFields.QUARTER_OF_YEAR);

但我得到一个负值,我不知道如何处理。

【问题讨论】:

  • 不要试图描述您的代码,请edit 您的问题包括有问题的代码,包括任何错误、输入、预期与实际输出等。minimal reproducible example 将是理想的。
  • 如何得到“2019 Q3 - (8 x Quarter) = 2017 Q4”? 8 个季度 = 2 年,所以应该是 2017 年第三季度?
  • 如果我使用相关常量(单位,而不是字段),对我来说效果很好:ideone.com/shivtr。虽然我没有编译异常。
  • 您使用的是日历季度还是财政年度季度?
  • 投票结束时“不清楚”,没有任何“季度”的定义。

标签: java date divide


【解决方案1】:

您正在使用QUARTER_OF_YEAR,它的类型为TimeField。你应该使用IsoFields.QUARTER_YEARS,它的类型是TemporalUnit

代表季度概念的单位。对于 ISO 日历系统,它等于 3 个月。

LocalDate now = LocalDate.now(ZoneId.of("Europe/London"));
LocalDate ago = now.minus(3, IsoFields.QUARTER_YEARS);
System.out.println(ago);

【讨论】:

  • 此代码使用 ISO 8601 标准定义的宿舍。但是问题的标题是“财政年度季度”,这可能遵循“季度”的不同定义。所以我不确定这个答案是否解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多