[英]Joda-Time convert days to months and days
如何使用Joda-Time將天數轉換為月數和天數。 例如,當我有33天時,它應該顯示1個月零2天。
public static void main(String[]args)
{
Calendar calendar = new GregorianCalendar();
int years = calendar.get(Calendar.YEAR);
int month = (calendar.get(Calendar.MONTH))+1;
int day = calendar.get(Calendar.DATE);
DateTime startDate = new DateTime(years, month, day, 0, 0, 0, 0);
DateTime endDate = new DateTime(2014, 7, 3, 0, 0, 0, 0);
Days d = Days.daysBetween(startDate, endDate);
int days = d.getDays();
int t = 1000 * 60 * 60 *24;
int days = days/t;
System.out.println(days);
}
您可以為此使用org.joda.time.Period類。
例:
Period p = new Period(startDate, endDate, PeriodType.yearMonthDayTime());
System.out.println(p.getMonths());
System.out.println(p.getDays());
嘗試創建一個十進制小數表示月份對我來說是沒有意義的,因為月份的天數不同(28、29、30、31)。
明智的ISO 8601標准定義了一種文本方式,以月和日為單位表示時間跨度,稱為“ 持續時間” 。 為此, Joda-Time有一個叫做Period的類 。 原諒術語上的不匹配,因為尚無日期時間術語的標准定義。
有關使用Period類的示例,請參見Ilya關於此問題的其他答案 。
文本格式為PnYnMnDTnHnMnS
,其中P
表示“句點”,而T
則將日期部分與時間部分分開。 其他部分是可選的。 一個月P1M2D
兩天就是P1M2D
。 Joda-Time Period類既解析並生成此類字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.