android中倒数计时器显示时间错误

时间:2013-11-24 15:58:57

标签: java android timer

我想开发一个倒计时应用程序。为此我在xml文件中有一个textview。我在.java文件中编写了以下代码。

private class santimer extends CountDownTimer {

        public santimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
            // TODO Auto-generated constructor stub

       }

        void set_text_view()
        {
            try {
                SimpleDateFormat df = new SimpleDateFormat("hh:mm:ss_yyyy.MM.dd");
                Date date1 = new java.util.Date();
                Date date2 = df.parse("00:00:00_2013.11.24");
                long diff = date2.getTime() - date1.getTime();
                long day = diff/(1000 * 60 * 60 * 24);
                long hours = diff - day * (1000 * 60 * 60 * 24);
                diff = diff/(1000 * 60 * 60 * 24);
                text.setText("Time remain:"+ day +" day and " + hours+" hours");
                Log.e("TEST" , date1.getTime() + " - " + date2.getTime() + " - " + diff);
            } catch (ParseException e) {
                Log.e("TEST", "Exception", e);
            } catch (java.text.ParseException e) {
                // TODO Auto-generated catch block
                   Log.e("TEST", "Exception", e);
            }
        }

        @Override
        public void onFinish() {
            // TODO Auto-generated method stub
            text.setText("Time's up!");
            time_eplapsed.setText("Time Elapsed: " + String.valueOf(startTime));
        }

        @Override
        public void onTick(long millisUntilFinished) {
            // TODO Auto-generated method stub
            text.setText("Time remain:" + millisUntilFinished);
            timeElapsed = startTime - millisUntilFinished;
            time_eplapsed.setText("Time Elapsed: "
                    + String.valueOf(timeElapsed));
            set_text_view();
        }

    }

为此,我有以下输出: enter image description here

这里的天数是正确的,但是小时数不正确。我无法理解我该怎么办?我想显示天,小时,分钟和秒的数量。请帮我这样做。

1 个答案:

答案 0 :(得分:0)

long hours = diff / (1000 * 60 * 60) % 24 ;