gpt4 book ai didi

java - 如何根据出生日期准确计算 Java 中的年龄

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:55 28 4
gpt4 key购买 nike

我正在尝试计算占月的 java 中的年龄,因此仅减去年是行不通的。我还想告诉用户今天是不是他们的生日。这是我到目前为止的代码,但恐怕有点偏离。即使它比较的两个日期相等,它也不会判断今天是否是生日。我最初尝试计算的方式是使用毫秒。你看到 2 种获取当前日期的方法的原因是因为我正在尝试让它工作,但想向所有人展示我的工作,以便他们可以为我指明正确的方向。

编辑澄清我的意思是 2015-1993 可以是 22 岁或 21 岁,具体取决于他们今年的生日是否已经过去。考虑到这一点,我想确定我得到了正确的年龄。

public class ShowAgeActivity extends AppCompatActivity {

private TextView usersAge;

private static long daysBetween(Date one, Date two)
{
long difference = (one.getTime()-two.getTime())/86400000; return Math.abs(difference);
}

private Date getCurrentForBirthday()
{
Date birthday = (Date) this.getIntent().getExtras().get("TheBirthDay");
int birthdayYear = birthday.getYear() + 1900;
Calendar cal = Calendar.getInstance();
cal.set(birthdayYear, Calendar.MONTH, Calendar.DAY_OF_MONTH);
Date current = cal.getTime();
return current;
}


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_age);


Date birthday = (Date) this.getIntent().getExtras().get("TheBirthDay");
Date currentDay = Calendar.getInstance().getTime();

long age = daysBetween(birthday,currentDay)/365;

usersAge =(TextView)findViewById(R.id.ageTextView);

if (birthday.compareTo(getCurrentForBirthday()) == 0 )
{
usersAge.setText("It is your birthday, and your Age is " + String.valueOf(age));
}

usersAge.setText("Your Age is " + String.valueOf(age));


}

最佳答案

下面是一个例子,说明如何计算一个人的年龄,如果今天是他们的生日,以及如果今天不是他们的生日,还需要多少天才能使用新的 java.time 包类包含在Java 8 的一部分。

  LocalDate today             = LocalDate.now();
LocalDate birthday = LocalDate.of(1982, 9, 26);
LocalDate thisYearsBirthday = birthday.with(Year.now());

long age = ChronoUnit.YEARS.between(birthday, today);

if (thisYearsBirthday.equals(today))
{
System.out.println("It is your birthday, and your Age is " + age);
}
else
{
long daysUntilBirthday = ChronoUnit.DAYS.between(today, thisYearsBirthday);
System.out.println("Your age is " + age + ". " + daysUntilBirthday + " more days until your birthday!");
}

关于java - 如何根据出生日期准确计算 Java 中的年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32766293/

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