Таймер разницы дат текущей и прошлой даты в Android - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь сделать разницу между текущей и прошлой датой, которую я получаю отлично.Но то, что я хочу, это с таймером, если мое Текущее время равно 1:02, а мое прошлое время 12:02, тогда мой таймер должен дать мне результат, такой как: 01:02:02, 01:00:03, 01:00: 03,01: 00: 04.Я знаю, что это не такая уж сложная проблема, но я не могу найти решение для нее.Прямо сейчас код, с которым я работаю, приведен ниже:

        try {
                Date currentSystemClockTime = new Date(System.currentTimeMillis());

                long diff = currentSystemClockTime() - serverDateTime.getTime();
                long seconds = diff / 1000;
                long minutes = seconds / 60;
                long hours = minutes / 60;
                long days = hours / 24;

                txtTimer.setText(days+"D:"+hours+":"+minutes+":"+seconds+"");

            } catch (Exception e) {
                e.printStackTrace();
            }

Заранее спасибо

1 Ответ

0 голосов
/ 18 сентября 2018

Я решил свою проблему, я выкладываю здесь ответ для информации других людей.Я создал метод, который будет вычислять разницу в днях, часах, минутах и ​​секундах вместе с таймером.

Метод расчета разницы в датах:

public void checkingCondition(){

        if(ParseUser.getCurrentUser()!=null && ParseUser.getCurrentUser().has("scanTime")){

          final  Date scanDateTime = ParseUser.getCurrentUser().getDate("scanTime");

            Date now = new Date(System.currentTimeMillis());

            try {
                long diff = now.getTime() - scanDateTime.getTime();

                long diffSeconds = diff / 1000 % 60;
                long diffMinutes = diff / (60 * 1000) % 60;
                long diffHours = diff / (60 * 60 * 1000) % 24;
                long diffDays = diff / (24 * 60 * 60 * 1000);

                System.out.print(diffDays + " days, ");
                System.out.print(diffHours + " hours, ");
                System.out.print(diffMinutes + " minutes, ");
                System.out.print(diffSeconds + " seconds.");

                if(diffDays == 0){
                    String hours = "", minutes = "", seconds = "";
                    if(diffHours < 10){
                        hours = "0"+diffHours;
                    }else{
                        hours = ""+diffHours;
                    }
                    if(diffMinutes < 10){
                        minutes = "0"+diffMinutes;
                    }else{
                        minutes = ""+diffMinutes;
                    }
                    if(diffSeconds < 10){
                        seconds = "0"+diffSeconds;
                    }else{
                        seconds = ""+diffSeconds;
                    }
                    txtTimer.setText(hours+":"+minutes+":"+seconds);


                }else{
                    String hours = "", minutes = "", seconds = "";
                    if(diffHours < 10){
                        hours = "0"+diffHours;
                    }else{
                        hours = ""+diffHours;
                    }
                    if(diffMinutes < 10){
                        minutes = "0"+diffMinutes;
                    }else{
                        minutes = ""+diffMinutes;
                    }
                    if(diffSeconds < 10){
                        seconds = "0"+diffSeconds;
                    }else{
                        seconds = ""+diffSeconds;
                    }
                    txtTimer.setText(diffDays+"D "+hours+":"+minutes+":"+seconds);
                }


            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }

Метод обработчика для таймера:

try {
            final Handler timerHandler = new Handler();

            updater = new Runnable() {
                @Override
                public void run() {
                    try {
                        checkingCondition();

                    } catch (Exception exp) {
                        exp.printStackTrace();
                    }
                    timerHandler.postDelayed(updater,500);
                }
            };
            timerHandler.post(updater);
        } catch (Exception exp) {
            exp.printStackTrace();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...