java - Android应用程序中的倒计时

标签 java android

我正在尝试为 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/

相关文章:

java - Android如何在应用程序处于手机后台时运行任务

java - 如何使用未知数量的比较器对列表/流进行排序?

java - 2D array[row][] = str.split ("\t") 未按预期运行

java - Google Places API - 保存 place_id 并违反条款和条件

Android:如何在 MapView 上捕获平移的结束

android - 如果仅设置大图标,则不会显示通知

android - 通知未在特定时间和日期显示

java - import android.support 无法解决

java - 自定义 Swing 组件: Problem with repaint()

java - 我需要创建一个 Jpanel 数组,但还需要使用按钮将正确的面板设置为按下时可见