gpt4 book ai didi

java - 比较日期期间和日期期间长度

转载 作者:行者123 更新时间:2023-12-02 06:37:55 25 4
gpt4 key购买 nike

假设我有一些账单,其中包含开始日期和结束日期。

Mar 10 to Apr 9
Apr 10 to May 9
May 10 to Jun 9

我要检查的业务规则是

对于任何给定的账单,前一个账单正好晚一个时期

例如,3 月 10 日到 4 月 9 日大约相隔一个月,因此我用它来检查任何两个连续的帐单开始日期(4 月 10 日与 3 月 10 日)是否相隔大约一个月。

现在我遇到的问题是获取周期的长度。例如,假设我有以下数据集

Jan 1 to Jan 31
Feb 1 to Feb 28
Mar 1 to Mar 31

我正在使用 JodaTime 库,所以我会说这样的话

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
DateTime date1 = formatter.parseDateTime("01/01/2013");
DateTime date2 = formatter.parseDateTime("31/01/2013");
System.out.println(Months.monthsBetween(date1, date2).toPeriod().getMonths());

返回 0,这是正确的,但没有用。

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
DateTime date1 = formatter.parseDateTime("31/01/2013");
DateTime date2 = formatter.parseDateTime("01/02/2013");
System.out.println(Months.monthsBetween(date1, date2).toPeriod().getMonths());

即使相隔一天,也会返回 1。

有什么更好的方法可以做到这一点?我可以检查天数差异,但由于计费周期以月为单位指定,我希望任何输出保持一致(例如:这些账单不是相隔 x 个月等)

最佳答案

为什么不直接检查一个周期的开始日期减去一天是否等于上一周期的结束日期?

LocalDate endDate1, startDate2...

startDate2.minusDays(1).equals(endDate1)

关于java - 比较日期期间和日期期间长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19456462/

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