如何找到两个日期之间的差异?

时间:2016-04-05 15:30:28

标签: java

首先。我已经查看了其他类似问题的现有主题,但它们确实涵盖了计算一个人年龄,月份和日期的一般方法。

我想知道我是否可以做很多事而不是短路。为了计算一个人在几天内的年龄,我首先在LocalDate的帮助下获得当前日期:

        LocalDate date = LocalDate.now();
        int years = 0, months = 0, days = 0;

        int currYear = date.getYear();
        int currMonth = date.getMonthValue();
        int currDay = date.getDayOfMonth();

为了获得用户的生日,我使用扫描仪:

    Scanner scanner = new Scanner(System.in);

int userDate;
System.out.println("When are you born? - YYYYMMDD:");
userDate = scanner.nextInt();

int inputYear = userDate / 10000;
int inputMonth = (userDate / 100) % 100;
int inputDay = userDate % 100;

如何在不使用已定义的方法a.k.a:

的情况下计算这两个日期之间的差异

GregorianCalendar userInput= new GregorianCalendar(inputYear, inputMonth - 1, inputDay);

long difference = (greg.getTimeInMillis() - userInput.getTimeInMillis()); long total = difference / 1000 / 60 / 60 / 24; total += counter; System.out.println("You are " + total + " days old");

任何提示,方向指针都会非常受欢迎!

提前致谢。 :)

2 个答案:

答案 0 :(得分:0)

您不应混合使用各种日期对象和计算,并期望它能够正常工作。 使用SimpleDateFormat可以轻松地解析/输出日期而不需要任何巨大的efford,因为它已经为你完成了。您将获得通常的Date,您可以从中获得时间。从那里开始它的唯一计算,应该相当简单。

如果您需要有关日期的帮助,请查看this simple Tutorial以获取更多信息。

答案 1 :(得分:0)

我做了一个简单的算法。首先,我首先计算用户出生​​的那一年剩余的天数。有了这些,我就开始添加当年的日子 - 1(意思是2015年)。然后我算法的最后一部分是计算今年过去了多少天。