Android Countdown Timer to Date

前端 未结 7 1861
死守一世寂寞
死守一世寂寞 2020-12-14 11:34

I am trying to make a countdown timer for a game/date in android. I want to create a timer that displays the days, hours, minutes, and seconds to a date I specify with a fin

7条回答
  •  粉色の甜心
    2020-12-14 12:09

    CountDownTimer that will display the time formatted to hours,minute,days,and seconds.

     public class DemotimerActivity extends Activity {
            /** Called when the activity is first created. */
             TextView tv;
             long diff;
             long oldLong;
             long NewLong;
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                tv = new TextView(this);
                this.setContentView(tv);
                SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
                String oldTime = "19.02.2018, 12:00";//Timer date 1
                String NewTime = "20.02.2018, 14:00";//Timer date 2
                Date oldDate, newDate;
                try {
                    oldDate = formatter.parse(oldTime);
                    newDate = formatter.parse(NewTime);
                    oldLong = oldDate.getTime();
                    NewLong = newDate.getTime();
                    diff = NewLong - oldLong;
               } catch (ParseException e) {
                    e.printStackTrace();
           }
             MyCount counter = new MyCount(diff, 1000);
             counter.start();
        }
    
    
        // countdowntimer is an abstract class, so extend it and fill in methods
        public class MyCount extends CountDownTimer {
        MyCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }
    
        @Override
        public void onFinish() {
            txtNumber1.setText("done!");
        }
    
        @Override
        public void onTick(long millisUntilFinished) {
             long millis = millisUntilFinished;
            String hms = (TimeUnit.MILLISECONDS.toDays(millis)) + "Day "
                    + (TimeUnit.MILLISECONDS.toHours(millis) - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(millis)) + ":")
                    + (TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)) + ":"
                    + (TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
            txtNumber1.setText(/*context.getString(R.string.ends_in) + " " +*/ hms);
        }
    }
    
        }
    

提交回复
热议问题