2012-09-18 149 views
6

我一直在使用安卓倒数计时器样本创建倒计时到某个日期。安卓倒计时计时器时间

Time TimerSet = new Time(); 
     TimerSet.set(20, 8, 2012); //day month year 
     TimerSet.normalize(true); 
     long millis = TimerSet.toMillis(true); 

     Time TimeNow = new Time(); 
     TimeNow.setToNow(); // set the date to Current Time 
     TimeNow.normalize(true); 
     long millis2 = TimeNow.toMillis(true); 

     long millisset = millis - millis2; //subtract current from future to set the time remaining 

     final int smillis = (int) (millis); //convert long to integer to display conversion results 
     final int smillis2 = (int) (millis2); 

     new CountDownTimer(millisset, 1000) { 
      public void onTick(long millisUntilFinished) { 

       // decompose difference into days, hours, minutes and seconds 
       int weeks = (int) ((millisUntilFinished/1000)/
         604800); 
       int days = (int) ((millisUntilFinished/1000)/86400); 
       int hours = (int) (((millisUntilFinished/1000) - (days 
         * 86400))/3600); 
       int minutes = (int) (((millisUntilFinished/1000) - ((days 
         * 86400) + (hours * 3600)))/60); 
       int seconds = (int) ((millisUntilFinished/1000) % 60); 
       int millicn = (int) (millisUntilFinished/1000); 



       w.setText(" " +weeks); 
       d.setText(" " +days); 
       h.setText(" " +hours); 
       m.setText(" " +minutes); 
       s.setText(" " +seconds); 
       mTextField.setText(smillis + " " + smillis2 + " " + 
         millicn + "Time remaining: " +weeks +"weeks " +days + " days " + hours 
         + " hours: " + minutes+ " minutes: " 
         + seconds + " seconds: "); 

      } 

      public void onFinish() { 
       mTextField.setText("done!"); 
      } 
     }.start(); 

我想知道如何设置时间和日期?目前正在午夜时分流行。我想它是提前

+0

喜。对于混淆抱歉。应用程序倒计时到2012年9月20日00:00(所以午夜(00:00)在2012年9月20日mTextField会说完成 –

+0

我试图改变他们,但倒计时停止 –

+0

毫秒2是当前日期和时间,毫秒是当前日期如果我改变毫秒,它会停止倒计时 –

回答

6

这里15:00

感谢你的问题:

timerSet.set(20, 8, 2012); //day month year 

这台未来的日期,而不是未来的一天中的时间(而不是,它设置布尔型allDay为true),所以它默认为00:00。

android API

set(int second, int minute, int hour, int monthDay, int month, int year) 

所以尽量

timerSet.set(0,0,15,20,8,2012) 

为15:00,8月20日,2012年

+0

aha。我做错了方式。我有timerSet.set(15,00,00,20,8,2012) –