2013-12-16 20 views
2

我需要創建一個需要多個天數和幾個月的方法,添加這兩個,然後返回結果天數。使用joda-time添加月份到天數

public int addMonthsToDays(int months, int days);//interface 

我想使用joda DateTime,但沒有獲取總天數的方法。下面是一個示例實現:

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

附註

我知道有些人會誤讀以上,並與多家的問題出來,所以在期待:

  • 我想從今天起的天數,而不是從1970年1月1日
  • 我不必使用DateTime,實現正是我所嘗試過的。
  • 目標是實現接口public int addMonthsToDays(int months, int days)並返回今天的新天數。
  • 我很高興回答其他問題
+0

沒關係,我理解了它。 (日期).plusMonths(months);日期時間dateTime = new DateTime()。plusDays(days).plusMonths(months); return Days.daysBetween(new DateTime(),dateTime).getDays(); }' – user3093402

+0

我必須等待8小時才能發佈我的答案作爲回覆 – user3093402

+0

我希望你也考慮過你需要的計算步驟的正確順序,因爲plusDays()。plusMonths()有時不等於plusMonths()。plusDays ()。是的,plusMonths()的引用日期也很重要。 –

回答

5

的問題是,你正在使用日期,但實際上想天。你可以做的是爲今天製作一個新的日期時間,另外一個日曆時間與你添加的日期/月份相同,然後計算天數差異。

在喬達時講:

Days.between(startDate, endDate); 

完整的(未經測試),例如看起來像

public int addMonthsToDays(int months, int days){ 
    DateTime startDate = new DateTime(); 
    DateTime endDate = new DateTime().plusDays(days).plusMonths(months); 
    return Days.between(startDate,endDate); 
} 
+0

是的。看到我上面的評論。我想到了。但是,非常感謝。 (我必須等待9分鐘才能接受你的答案)。在同一時間:+1 – user3093402

+0

其實我顯然沒有足夠的聲望來投票。所以在9分鐘。謝謝。 – user3093402