我正在尝试为 Android 设备创建一个年龄计算器应用程序,在这个应用程序中,我现在获得出生日期和当前日期,然后获得这些时间的差异并将其显示给用户。
问题是我正在寻找一种为年龄计算器添加计数功能的方法,该功能可以计算用户年龄的计时器(如实时老化:D)。
这是我的年龄计算器类(class):
public class AgeCalculation {
private int startYear;
private int startMonth;
private int startDay;
private int endYear;
private int endMonth;
private int endDay;
private int resYear;
private int resMonth;
private int resDay;
private Calendar start;
private Calendar end;
public String getCurrentDate()
{
end=Calendar.getInstance();
endYear=end.get(Calendar.YEAR);
endMonth=end.get(Calendar.MONTH);
endMonth++;
endDay=end.get(Calendar.DAY_OF_MONTH);
return endDay+":"+endMonth+":"+endYear;
}
public void setDateOfBirth(int sYear, int sMonth, int sDay)
{
startYear=sYear;
startMonth=sMonth;
startMonth++;
startDay=sDay;
}
public void calcualteYear()
{
resYear=endYear-startYear;
}
public void calcualteMonth()
{
if(endMonth>=startMonth)
{
resMonth= endMonth-startMonth;
}
else
{
resMonth=endMonth-startMonth;
resMonth=12+resMonth;
resYear--;
}
}
public void calcualteDay()
{
if(endDay>=startDay)
{
resDay= endDay-startDay;
}
else
{
resDay=endDay-startDay;
resDay=30+resDay;
if(resMonth==0)
{
resMonth=11;
resYear--;
}
else
{
resMonth--;
}
}
}
public String getResult()
{
return resYear + " year " + resMonth + " month " + resDay + " day " ;
}
public long getSeconde()
{
start=Calendar.getInstance();
start.set(Calendar.YEAR, startYear);
start.set(Calendar.MONTH, startMonth);
start.set(Calendar.DAY_OF_MONTH, startDay);
start.set(Calendar.HOUR, 12);
start.set(Calendar.MINUTE, 30);
start.set(Calendar.SECOND, 30);
start.set(Calendar.MILLISECOND, 30);
long now=end.getTimeInMillis();
long old=start.getTimeInMillis();
long diff=old-now;
return diff/1000;
}
}
最佳答案
创建一个计时器,每秒(或其他)增加一个值,然后将其显示在文本字段中。大致如下:
public void ageTimer() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
liveAge++
}
}, 0, 1000);
}
然后,您可以将其附加到年、日等。添加您自己的检查,检查何时达到 60 秒,然后增加分钟等。
然后您可以将其显示在文本字段中,如下所示:
yourAge = (TextView) findViewById(R.id.yourAge); // where yourAge is the id of your textview in xml
yourAge.setText(liveAge);
关于java - Android应用程序中的倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23298028/