当前位置: 首页 > 知识库问答 >
问题:

如何在添加天数后获得Joda Time的确切月差

温智明
2023-03-14

我想找出两次约会之间的月数。感谢您的帮助。我在下面的例子中使用了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年2月18日至2013年3月01日期间返回“0”

我不能给月份加1,因为我需要找到同一个月的差异,我还需要找到两个经过的时间段之间的差异,即“2012-12-04”和“2013-1-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个答案

段干茂实
2023-03-14

比较前,将两个日期的月份设置为1

startModified = start.withDayOfMonth(1); 
endModified = end.withDayOfMonth(1);
int months = Months.monthsBetween(startModified, endModified).getMonths();
 类似资料:
  • 问题内容: 如何在postgres中找到月份的最后一天?我有一个以(YYYYMMDD)格式存储为numeric(18)的日期列,我正在尝试使用以下方式使它成为日期 然后找到该日期的最后一天: 但这给了我这个错误: 有什么帮助吗? Postgres版本: 问题答案: 只需使用last_day函数: PS:现在,我相信您知道为您自己的问题选择正确的标签非常重要!

  • 问题内容: 我正在尝试检索当月的哪一天。 例如今天是2011年8月29日。 我想做的只是获取天数,例如29或30。它是每月的哪一天。 我将如何去做? 问题答案: 您需要获取一个Calendar实例并将其作为月份中的某天 您还可以获取DAY_OF_WEEK,DAY_OF_YEAR,DAY_OF_WEEK_IN_MONTH等。

  • 问题内容: 我需要获取一个月的第一个日期和最后一个。获取第一个是微不足道的,但是获取最后一个似乎需要一些逻辑,因为月份的长度不同,而2月的长度甚至会随着年份而变化。是否已经在JodaTime中内置了对此机制,还是应该自己实现? 问题答案: 怎么样: 以知道来源的方式传回,代表a 代表[每月的月份]栏位。 碰巧的是,该方法甚至记录在案,以推荐它用于此特定任务: 由于月份长度不同,此操​​作对于在每月

  • 如何以moment.js中的以下格式获取当月的第一天和最后一天和时间: 2016-09-01 00:00

  • 有多种方法可以添加一天,例如: 这个的问题是答案是:2016-12-06 16:52:44.679431我只需要2016-12-06。我可以通过执行像split这样的字符串操作很容易地得到它。我想知道是否有直接做这件事的方法。 其次: 从我从文档中读到的内容来看,以下两种方法应该可以给我时区的时间,但这两种方法都不能。 结果:时间。结构时间(tm_year=2016,tm_mon=12,tm_da

  • 问题内容: 我正在尝试使用以下格式为每个人打印其年龄: 例如:19年8个月13天。 我已经在Google上搜索了很多,并且注意到有一个特定的函数可以计算日期之间的差。 但是,该功能在中不存在,因此我继续尝试使用和一些运算符。 我的尝试: 我的问题取决于日子。我不知道如何使用此函数计算天数(“尝试除以4或30”);我以为我的逻辑不好,但我无法弄清楚,有什么想法吗? 问题答案: 与Lalit的答案非常