Reputation: 754
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
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