gpt4 book ai didi

java - 添加天数后如何在 Joda-Time 中获得准确的月份差异

转载 作者:行者123 更新时间:2023-11-29 08:00:04 25 4
gpt4 key购买 nike

我正在尝试查找两个日期之间的月数。任何帮助表示赞赏。我正在使用 Joda-Time对于下面的例子。

DateMidnight start = new DateMidnight(new Date()); 
DateMidnight dtEndDate = start.plusDays(11); //adding Days

int months = Months.monthsBetween(start, dtEndDate).getMonths();

System.out.println("Months between " +
start.toString("yyyy-MM-dd") + " and " +
dtEndDate.toString("yyyy-MM-dd") + " = " +
months + " month(s)");

上面的代码为 2013-Feb-18 到 2013-Mar-01 返回“0”

我不能将 +1 添加到月份,因为我需要在同一个月中找到差异,我还需要找到两个经过期间之间的差异,即“2012-Dec-04”和“2013-Jan-06”之间应该返回-1;

scenario1:

date1: 2013-02-18
date1.plusDays(11);
date2: 2013-03-01
Output : 0 month(s) //but I need as 1 Month

scenario2:
date1: 2013-02-18
date1.plusDays(1);
date2: 2013-02-19
Output : 0 month(s) //returns correctly exactly what I need

scenario3:
date1: 2013-03-18
date2: 2013-02-19
Output should be : -1 month(s)

最佳答案

在比较之前将两个日期的日期设置为 1:

startModified = start.withDayOfMonth(1); 
endModified = end.withDayOfMonth(1);
int months = Months.monthsBetween(startModified, endModified).getMonths();

关于java - 添加天数后如何在 Joda-Time 中获得准确的月份差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14939706/

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