我需要帮助用 Java 编写一个函数,该函数接受一个输入日期并告诉我自该日期以来的年数、月数和天数。
例如,“2005 年 7 月 1 日”将输出“6 年 2 个月 2 天”
最佳答案
使用Joda Time - 它使它相对容易:
import org.joda.time.*;
public class Test
{
public static void main(String[] args)
{
LocalDate then = new LocalDate(2005, 7, 1);
LocalDate today = new LocalDate();
Period period = new Period(then, today, PeriodType.yearMonthDay());
System.out.println(period); // P6Y2M2D
System.out.println(period.getYears()); // 6
System.out.println(period.getMonths()); // 2
System.out.println(period.getDays()); //2
}
}
(与 Date
/Calendar
相比,我非常更喜欢 Joda API。它更容易使用,部分原因是通常更喜欢不变性。)
关于日期和现在之间的 Java 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7294692/