Skip to content

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 26 Aug 05:49
· 1 commit to main since this release

反向推算与锚点

  • 新增 Schedule.previousTarget(before, zone):不晚于 before 的最近一次出现(含恰等于);与 nextTarget 遍历同一条出现序列、复用同一套快路径,消费方无需再以「区间二分 nextTarget」硬凑完结事件锚点;before 早于锚点返回 null(可回退 anchor(zone));推算至 9999 上界返回界内最后一次出现(不抛异常,与正向越界语义不同)
  • 新增 Schedule.anchor(zone):出现序列的第一次出现;夏令时缺口日按缺口顺延(02:30 → 03:30),恒等于 nextTarget(锚点前一瞬)

正向推算带上限

  • nextTarget(now, zone, until):重复出现晚于 until 时返回 null(序列单调,后续必然超限);锚点与非重复日程不受约束——重复结束不能追溯取消锚点,takeIf { it <= end } 式封顶会误杀锚点,语义由库钉死

倒计时

  • countdown(target, now, rounding) 新增进一模式 Rounding.CEIL_FUTURE:未到方向向上取整(差一秒满整单位也进位:86399 秒 + 1 纳秒 = 1 天;24 时 → 1 天、60 分 → 1 时边界进位),已过方向恒截断;默认 TRUNCATE 保持历史行为
  • 新增 calendarCountdown(target, now, zone)CalendarCountdown:年/月/日/时/分/秒钟面分量,闰年与月长由日历处理,月末钳制与 java.time Period 一致——跨平台替代 JVM 专属 API;跨夏令时一天计 1 天 0 小时(与 countdown() 真实时长语义对照)

测试与文档

  • 测试 101 → 138(× JVM / Android / wasm 三平台,iOS 由 macOS CI 执行):封顶三态与误杀反例、反向边界(含等于/锚点前一瞬/DST 重叠日/收缩回弹/越界收尾/闰六月格点年)、六日程正反对偶不变量、进一三层取整、日历分量对拍;农历年表与 periodUntil 语义先探针实测再落断言
  • README 重构:按新手使用路径重排、精简章节,版本历史收敛为版本索引
  • 全部为增量 API,无破坏性变更(nextTarget/countdown 仅追加默认参数)

Full Changelog: v2.0.1...v2.1.0