gpt4 book ai didi

java - 使用公历与当前日期进行比较,无需外部类

转载 作者:行者123 更新时间:2023-12-01 21:36:43 25 4
gpt4 key购买 nike

我应该询问用户的年龄,作为返回,我应该检查他们已经活了多少天。我尝试过在这里搜索,但不太明白该怎么做。

条件:采用 GregorianCalendar 日期作为参数并返回该日期与今天之间的天数差异的方法。 我不能为此使用任何外部类。

这是我未完成的代码:

public static void main(String[] args) {
int day;
int month;
int year;
int difference;
Scanner scanIn = new Scanner(System.in);

System.out.println("Please enter your birth date.");
System.out.println("Please enter the month you were born in (mm)");
month = scanIn.nextInt();
System.out.println("Please enter the day you were born in (dd)");
day = scanIn.nextInt();
System.out.println("Please enter the year you were born in (yyyy)");
year = scanIn.nextInt();

GregorianCalendar greg = new GregorianCalendar(year, month, day);

difference = getDifference(greg);
month = greg.get(Calendar.MONTH) + 2;
year = greg.get(Calendar.YEAR);

//System.out.println("Year is " + year);
//System.out.println("Month " + month);

}

public static int getDifference(GregorianCalendar greg) {
Calendar now = new GregorianCalendar();
int difference;
System.currentTimeMillis.greg();

difference = greg - now;
return difference;
}

我不明白如何获得差异?

我的老师建议我们用毫秒来解决这个问题,但我已经花了 4 个小时试图解决这个问题,但我不明白这一点。

如何获取当前的日、月、年?

最佳答案

建议使用new date API在 Java 8 中而不是 Calendar API 中。特别是,您可以使用 ChronoUnits.DAYS. Between() 方法,如here所述。 。我建议这样:

    LocalDate dob = LocalDate.of(year, month, day);
LocalDate now = LocalDate.now();
difference=(int)ChronoUnit.DAYS.between(dob, now);

System.out.println("Days since date of birth: " + difference);

您可以轻松检查是否给出与旧界面相同的结果:

    GregorianCalendar greg = new GregorianCalendar(year, month-1, day);
Calendar nowCal = new GregorianCalendar();
long deltaMillis = nowCal.getTime().getTime() - greg.getTime().getTime();

System.out.println("Days since date of birth: " + deltaMillis/(1000*60*60*24));

请注意,Calendar 界面从 0 开始计算月份,而新 API 从 1 开始。

希望对您有所帮助。

关于java - 使用公历与当前日期进行比较,无需外部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36880499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com