Я разрабатываю для Android. Я использую таймер обратного отсчета для отображения обратного отсчета до определенной даты. во время этого сообщения он должен отображать что-то близкое к 18dys 12hrs 30min 55s
. Но я получаю 49dys 19hrs 28min 31s
. Я считаю, что мое преобразование в читаемую дату верное, но опять же, у меня нет опыта с этим таймером. Мои исследования ведут меня по кругу. Пожалуйста, взгляните на мой код и найдите любые ошибки, которые у меня могут быть. Заранее спасибо.CountDownTimer правильно отображает время
private void startCountdown() {
CountDownTimer mCountDownTimer;
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal2.set(Calendar.YEAR, 2013);
cal2.set(Calendar.MONTH, 8);
cal2.set(Calendar.DAY_OF_MONTH, 23);
cal2.set(Calendar.HOUR_OF_DAY, 7);
cal2.set(Calendar.MINUTE, 0);
long diffInMillis = cal2.getTimeInMillis() - cal1.getTimeInMillis();
tvCount = (TextView) findViewById(R.id.tvCountdown);
mCountDownTimer = new CountDownTimer(diffInMillis, 1000) {
@Override
public void onFinish() {
tvCount.setText("VIEW FIGHT CARD");
}
@Override
public void onTick(long millisUntilFinished) {
String days = null, hours = null, minutes = null, seconds = null;
long count = millisUntilFinished/DateUtils.DAY_IN_MILLIS;
if(millisUntilFinished > DateUtils.DAY_IN_MILLIS) {
if(count > 1)
days = (count)+("dys ");
else
days = (count)+("dy ");
millisUntilFinished %= DateUtils.DAY_IN_MILLIS;
}
if(millisUntilFinished > DateUtils.HOUR_IN_MILLIS) {
count = millisUntilFinished/DateUtils.HOUR_IN_MILLIS;
if(count > 1)
hours = (count) + "hrs ";
else
hours = count + "hr ";
millisUntilFinished %= DateUtils.HOUR_IN_MILLIS;
}
if(millisUntilFinished > DateUtils.MINUTE_IN_MILLIS) {
count = millisUntilFinished/DateUtils.MINUTE_IN_MILLIS;
minutes = count + "min";
millisUntilFinished %= DateUtils.MINUTE_IN_MILLIS;
}
if(millisUntilFinished > DateUtils.SECOND_IN_MILLIS) {
count = millisUntilFinished/DateUtils.SECOND_IN_MILLIS;
seconds = count + "s";
millisUntilFinished %= DateUtils.SECOND_IN_MILLIS;
}
tvCount.setText(days + hours + minutes +seconds + "");
}
};
mCountDownTimer.start();
}
Даже не подумал об этом. Спасибо. Вскоре я приму свой ответ. Любая идея, почему мои часы отключены? Может быть, потому, что его предполагается быть 24-часовым форматом? –
О, ну, я идиот. У меня был час в коде. еще раз спасибо –