使用joda-time添加几个月到几天

use*_*402 2 java jodatime

我需要创建一个需要几天和几个月的方法,添加两个,然后返回结果天数.

public int addMonthsToDays(int months, int days);//interface
Run Code Online (Sandbox Code Playgroud)

我想使用joda DateTime,但没有办法获得总天数.这是一个示例实现:

public int addMonthsToDays(int months, int days){
    DateTime dateTime = new DateTime().plusDays(days).plusMonths(months);
  return // what do I return?
}
Run Code Online (Sandbox Code Playgroud)

附加说明

我知道有些人会误解上述内容并提出一些问题,所以在预料之中:

  • 我想要从今天开始的天数,而不是1970年1月1日
  • 我不必使用DateTime,实现就是我尝试过的.
  • 目标是实现界面public int addMonthsToDays(int months, int days)并从今天起返回新的天数.
  • 我很乐意回答其他问题

Nan*_*nne 5

问题是你正在使用日期,但实际上需要几天.您可以做的是为今天制作一个新的DateTime,并为您添加的日/月提供另一个DateTime,然后计算天数的差异.

在joda-time中说:

Days.between(startDate, endDate);
Run Code Online (Sandbox Code Playgroud)

完整(未经测试)的例子看起来像

public int addMonthsToDays(int months, int days){
  DateTime startDate = new DateTime();
  DateTime endDate = new DateTime().plusDays(days).plusMonths(months);
  return Days.between(startDate,endDate);
}
Run Code Online (Sandbox Code Playgroud)