回答
使用模數%
。
int months = 18;
int years = months/12; // 1
int remainingMonths = months % 12; // 6
@Giku,在這種情況下,您可能需要考慮提高打字速度。 – 2011-06-05 22:48:37
@jjj:這沒有什麼意義,因爲'double' - >'int'賦值已經完成。而且,你的行根本不編譯。也許你在你的真實代碼中犯了一個錯誤,在目前所提供的信息中是不可見的。 – BalusC 2016-09-16 07:09:01
java.time
的java.time框架是建立在Java 8和更高版本。這些課程取代了老的麻煩日期時間課程,如java.util.Date
,.Calendar
,& java.text.SimpleDateFormat
。 Joda-Time團隊還建議遷移到java.time。請參閱Oracle Tutorial。並搜索堆棧溢出了很多例子和解釋。
大部分的java.time功能後移植到Java 6 並且還適於在[ThreeTenABP] (https://github.com/JakeWharton/ThreeTenABP)到Android。
ThreeTen-Extra項目將java.time擴展到其他類。這個項目是未來可能增加java.time的一個試驗場。你可以在這裏找到一些有用的類,如Interval
,YearWeek
,YearQuarter
,等等。
Period
的Period
類跟蹤的時間無關的時間軸年,月,日方面的跨度。一定要撥打normalized
作爲習慣,強迫它重新計算一年和六個月的十八個月。
Period period = Period.ofMonths(18).normalized();
提取年數和月數。
int years = period.getYears();
int months = period.getMonths();
您可以撥打toString
以表示「durations」標準ISO 8601格式此值:PnYnMnDTnHnMnS
。在這種格式中,P
標誌着開始,而T
將年 - 月 - 日部分與小時 - 分鐘 - 秒部分分開(在本問題的情況下不相關)。
String output = period.toString();
P1Y6M
- 1. 月份和年份的日期轉換
- 2. 將年份日月轉換爲月份日
- 3. 如何在xts中將數字年份月份轉換爲年份 - 月份 - 日期日期格式?
- 4. 如何爲年份和月份
- 5. 在Android中將日期轉換爲月份和年份
- 6. 我必須從輸入的月份/年份打印月份和年份到當前的月份和年份
- 7. 如何從年份和月份中扣除月份
- 8. 將年份和月份(「yyyy-mm」格式)轉換爲日期?
- 9. 將年份和月份錶轉換爲熊貓系列
- 10. 將月份和年份轉換爲日期
- 11. 有月份和年份PHP
- 12. 結合年份和月份
- 13. 減去年份和月份
- 14. 按年份和月份
- 15. 只月份和年份
- 16. LINQ - 按年份和月份
- 17. 選擇年份和月份
- 18. SQL:按月份和年份
- 19. 顯示月份和年份
- 20. 如何將月份數字轉換爲月份短名稱?
- 21. 如何將月份名稱轉換爲月份編號
- 22. NSFetchRequest爲特定的月份和年份
- 23. 將月份名稱轉換爲SQL Server中的月份編號
- 24. 將月份文本轉換爲JSON中的月份編號
- 25. 如何按年份和月份分組?
- 26. 如何在Java中將月份名稱轉換爲月份數字使用JCombobox
- 27. 從月到年和月份
- 28. 如何從過去的月份到當月的月份和年份列表
- 29. 將某一年份的周編號轉換爲月份名稱
- 30. 如果月份是12月份,則將年份增加1
這是一個數學問題,它沒有任何與Java。 – 2012-05-30 15:55:28
@ChristofferHammarström與Java完全不相干。構建了兩個複雜的框架來處理這些工作,第一個Joda-Time和現在Java內置的java.time及更高版本。雖然這個特殊情況可以通過數學來處理,但也有很多其他日期時間的工作。使用java.time類使得這些工作更加自我記錄,意圖比簡單整數數學更清晰。再加上ISO 8601格式內置支持的好處,可以減輕調試器和日誌中數據值的查看(以及數據交換)。 – 2016-08-09 02:13:55
@BasilBourque在將月份轉換爲年份的具體情況下,一年中總是有12個月,簡單的劃分和模數。 – 2016-08-15 18:02:27