java出生日期可以用哪个类_如何在出生日期准确计算出Java的年龄

我试图计算

java中考虑了几个月的年龄,所以减去几年就不行了.我还想告诉用户今天是他们的生日.这是我到目前为止的代码,但我担心它有点偏.它也不会告诉今天是否是生日,即使它比较的两个日期是相等的.我试图最初计算的方式是使用毫秒.你看到获得当前日期的两种方法的原因是因为我正在尝试让它工作,但是想向每个人展示我的工作,以便他们能够指出我正确的方向.

编辑澄清

我的意思是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));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值