gpt4 book ai didi

java - 查找不同行星上的年龄

转载 作者:行者123 更新时间:2023-12-01 06:48:18 25 4
gpt4 key购买 nike

我正在编写一个程序,询问用户的出生日期,然后计算他们在不同行星上的年龄(以年为单位)。除了每个数字之间有一个空格之外,我不打算假设如何输入生日。

我现在的代码不符合这些规范,我不知道如何编写它。我在计算我今天的年龄时也遇到问题。当我输入生日并打印出年龄时,它当前告诉我我是 407,但是当我打印出 dateBirth 和今天时,这两个日期都是正确的。

System.out.print("Please enter your birthdate (mm dd yyyy): ");
birthdate = scan.nextLine();

DateFormat df = new SimpleDateFormat("MM dd yyyy");
Date dateBirth = df.parse(birthdate);
Calendar calBirth = new GregorianCalendar();
calBirth.setTime(dateBirth);

Calendar calDay = new GregorianCalendar();
today = calDay.getTime();
age = (today.getTime() - dateBirth.getTime()) / (1000 * 60 * 60 * 24 * 365);

最佳答案

1000 * 60 * 60 * 24 * 365 实际上是 31536000000,它比 Integer.MAX_VALUE 更大,这会导致溢出。作为整数,它将被计算为 1471228928,这会导致错误的结果。

解决方案是将字母 L 附加到您的常量之一

long div = ( 1000 * 60 * 60 * 24 * 365L );
long age = ( today.getTime() - dateBirth.getTime() ) / div;

关于java - 查找不同行星上的年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2343367/

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