gpt4 book ai didi

Java 8 LocalDate-确定无年的 Feb-29 日期的年份?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:33 24 4
gpt4 key购买 nike

我和我的同事有一个有趣的问题。我们使用的旧系统只返回 ddMMM 格式的日期数据。如果当年的日期/月份是过去的,那么我们将假定此日期适用于明年。否则适用于当年。

所以今天是 4/30/2015。如果系统返回包含 12MAR 的记录,则该日期将转换为 3/12/2016。如果日期显示为 07MAY,则它会转换为 5/7/2015

但是,29FEB 是闰年,因此尚不清楚如何确定年份。我们不能用年份实例化它而不可能抛出错误。我们在试图为当年创建一个 LocalDate 时依赖于 try/catch。如果捕获,我们假设它属于明年。

是否有更符合犹太教规的方法来做到这一点?

最佳答案

  • 将值解析为 MonthDay,因为这就是您所拥有的。
  • 如果月日不是2月29日,照常处理
  • 如果 2 月 29 日,您需要对其进行特殊处理:
    • Year.isLeap(long)判断当前年份是否为闰年
    • 如果是:
    • 如果当前是 2 月 29 日或之前,则结果是今年 2 月 29 日
    • 如果目前 2 月 29 日之后,您需要应用规则 - 您可以选择明年 3 月 1 日或明年 2 月 28 日
    • 如果不是(今年是闰年)
    • 如果当前是 2 月 28 日或之前,您需要再次申请规则,可能会在今年 3 月 1 日或 2 月 28 日返回
    • 如果当前是 2 月 28 日之后,那么该日期逻辑上属于明年...
      • 如果明年是闰年,结果大概是明年2月29日
      • 如果明年不是闰年,你又需要一个规则

希望这概述了您需要考虑的三个“奇怪”情况 - 我们没有足够的信息来告诉您在这些情况下该怎么做。

关于Java 8 LocalDate-确定无年的 Feb-29 日期的年份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29974074/

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