簡體   English   中英

Joda-Time將天數轉換為月數

[英]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

明智的ISO 8601標准定義了一種文本方式,以月和日為單位表示時間跨度,稱為“ 持續時間” 為此, Joda-Time有一個叫做Period的類 原諒術語上的不匹配,因為尚無日期時間術語的標准定義。

有關使用Period類的示例,請參見Ilya關於此問題的其他答案

ISO持續時間

文本格式為PnYnMnDTnHnMnS ,其中P表示“句點”,而T則將日期部分與時間部分分開。 其他部分是可選的。 一個月P1M2D兩天就是P1M2D Joda-Time Period類既解析並生成此類字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM