Payal Sorathiya
Payal Sorathiya

Reputation: 754

How use CountDownTimer in my application

In my application I want to use CountDownTimer according to system time and my time. In case my time is 14:30:30 and system time is 14:00:00, than how to set 30 minute timer in my application?

Here is the code I have tried,

 try {
      Date1 = dateFormat.parse(curranttime);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    try {
      Date2 = dateFormat.parse(mytime);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    long mills = Date1.getTime() - Date2.getTime();
    int Hours = (int) (mills / (1000 * 60 * 60));
    int Mins = (int) (mills / (1000 * 60)) % 60;
    Log.e("Mins",Mins+"");

    CountDownTimer countDownTimer = new CountDownTimer(mills, 1000) {
        public void onTick(long millisUntilFinished) {
            long millis = millisUntilFinished;
            //Convert milliseconds into hour,minute and seconds
            String hms = String.format("%02d:%02d:%02d",
                    TimeUnit.MILLISECONDS.toHours(millis),
                    TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                    TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
            holder.txtTime.setText(hms);//set text
        }
        public void onFinish() {
            holder.txtTime.setText("00:00"); //On finish change timer text
        }
    }.start();

Note : I use CountDownTimer in the adapter.

Upvotes: 1

Views: 107

Answers (1)

Payal Sorathiya
Payal Sorathiya

Reputation: 754

try {
  Date1 = dateFormat.parse(curranttime);
} catch (ParseException e) {
    e.printStackTrace();
}
try {
  Date2 = dateFormat.parse(mytime);
} catch (ParseException e) {
    e.printStackTrace();
}
long mills = Date2.getTime() - Date1.getTime();
int Hours = (int) (mills / (1000 * 60 * 60));
int Mins = (int) (mills / (1000 * 60)) % 60;
Log.e("Mins",Mins+"");

CountDownTimer countDownTimer = new CountDownTimer(mills, 1000) {
    public void onTick(long millisUntilFinished) {
        long millis = millisUntilFinished;
        //Convert milliseconds into hour,minute and seconds
        String hms = String.format("%02d:%02d:%02d",
                TimeUnit.MILLISECONDS.toHours(millis),
                TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
        holder.txtTime.setText(hms);//set text
    }
    public void onFinish() {
        holder.txtTime.setText("00:00"); //On finish change timer text
    }
}.start();

I can minus my time from system time. Actually minus system time to my time and it's work

Upvotes: 2

Related Questions