2014-04-25 31 views
0

我正在尝试为Android设备创建一个Age计算器应用程序,并且在此应用程序中我现在获取出生日期和当前日期,然后获取这些时间的差异,然后将其显示给用户。在Android应用程序CountUp时间

问题是我正在寻找一种方法来为年龄计算器添加一个countUp功能,该功能会计算用户年龄的计时器(如LIKE LIVE AGING:D)。

这里是我的年龄计算器类:

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; 
    } 
} 

回答

1

创建一个定时器,每一个第二(或其他)增加值,你则显示在文本字段中。

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); 
+0

如果你正在使用Eclipse在Windows上,你可以这样做:'按Ctrl + Shift + O'为您自动导入或者只是:'进口java.util.Timer中; import java.util.TimerTask;' –

相关问题