我是java新手,我希望将月份转换为年份。例如,如果我有18个月并将其除以12,我将有1。5年,但我希望它为1年和6个月。
感谢您的帮助。
答案 0 :(得分:19)
使用模数%
。
int months = 18;
int years = months / 12; // 1
int remainingMonths = months % 12; // 6
答案 1 :(得分:3)
java.time框架内置于Java 8及更高版本中。这些类取代了旧的麻烦日期时间类,例如java.util.Date
,.Calendar
和& java.text.SimpleDateFormat
。 Joda-Time团队还建议迁移到java.time。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。
大部分java.time功能都被反向移植到Java 6& ThreeTen-Backport中的7,并在[ThreeTenABP]中进一步适应Android (https://github.com/JakeWharton/ThreeTenABP)。
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
以ISO 8601:PnYnMnDTnHnMnS
的标准“durations”格式表示此值。在这种格式中,P
标记开头,而T
将年 - 月 - 日部分与小时 - 分 - 秒部分分开(与本课题无关)。
String output = period.toString();
P1Y6M