如何在java中将给定的天数转换为年、月、日

如何在java中将给定的天数转换为年、月、日,java,date,calendar,Java,Date,Calendar,如何在java中将给定的日期转换为日历格式 示例初始日期为2015年1月1日。给定的天数为125天。应将其转换为0年、4个月、5天,并添加到2015年5月6日的初始日期。您可以使用java8新的java.timeAPI中的Period类将两个日期之间的差异转换为年、月和天: LocalDate initial = LocalDate.of(2015, 1, 1); LocalDate end = initial.plusDays(125); Period p = Period.betwee

如何在java中将给定的日期转换为日历格式


示例初始日期为2015年1月1日。给定的天数为125天。应将其转换为0年、4个月、5天,并添加到2015年5月6日的初始日期。

您可以使用java8新的
java.time
API中的
Period
类将两个日期之间的差异转换为年、月和天:

LocalDate initial = LocalDate.of(2015, 1, 1);

LocalDate end = initial.plusDays(125); 

Period p = Period.between(initial, end);

int years = p.getYears();   // 0
int months = p.getMonths(); // 4 
int days = p.getDays();     // 5

您可以使用java8新的
java.time
API中的
Period
类将两个日期之间的差异转换为年、月和日:

LocalDate initial = LocalDate.of(2015, 1, 1);

LocalDate end = initial.plusDays(125); 

Period p = Period.between(initial, end);

int years = p.getYears();   // 0
int months = p.getMonths(); // 4 
int days = p.getDays();     // 5

从上述解决方案中,您可以获得要添加的年、月、日数。使用日历对象在初始日期中添加这些值。如果需要,可以为闰年添加额外条件。如何为闰年添加条件?有些月份包含30天和31天。如何处理这个问题…请你对闰年稍加说明,你可以检查你的初始日期和最终日期之间的任何一年是否是闰年,在这两者之间的每个闰年的最终日期加上1天。要检查闰年,只需第%4年就可以了。好的..明白了..几个月30天和31天怎么样..“这应该转换为0年,4个月,5天”--不,不应该。您应该使用良好的API将天直接添加到日期。最好是java.time API,请参阅建议的副本。125天不适用于4个月和5天,这完全取决于您开始的日期,因为月份的长度不相等。根据上述解决方案,您可以获得要添加的年数、月数和天数。使用日历对象在初始日期中添加这些值。如果需要,可以为闰年添加额外条件。如何为闰年添加条件?有些月份包含30天和31天。如何处理这个问题…请你对闰年稍加说明,你可以检查你的初始日期和最终日期之间的任何一年是否是闰年,在这两者之间的每个闰年的最终日期加上1天。要检查闰年,只需第%4年就可以了。好的..明白了..几个月30天和31天怎么样..“这应该转换为0年,4个月,5天”--不,不应该。您应该使用良好的API将天直接添加到日期。最好是java.time API,请参阅建议的副本。125天不是4个月和5天,这完全取决于从哪一天开始,因为月份的长度不相等。但是应用程序在java 7上运行,而应用程序在java 7上运行