求助!安卓计算用户输入时间与当前时间差并显示的程序,大神帮忙看看代码哪里有问题,感激不尽!

public class MainActivity extends Activity {

private Button Btn1,Btn2,Btn3,Btn4;
private EditText editText1;
private TextView textView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Btn4 = (Button) findViewById(R.id.btn4);
    editText1 = (EditText) findViewById(R.id.EditText1);
            textView1 = (TextView) findViewById(R.id.TextView1);、
            new TimeThread().start();

    Btn4.setOnClickListener(new MyClickListener());
}
      class MyClickListener implements View.OnClickListener{

        @Override
        public void onClick(View v) {
            SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
            Date currentTime = new Date();
            String date1 = df.format(currentTime);
            try 
            {
                int I1 = editText1.length();
                if (I1 == 8)
                {
                    CharSequence ed1 = editText1.getText();
                    String date2 = df.format(ed1);
                    try{ 
                        Date d1 = df.parse(date1);
                        Date d2 = df.parse(date2);
                        //计算时间差
                        long diff = (d1.getTime() - d2.getTime());

                        long day = diff / (1000 * 60 * 60 * 24);
                        long hour = (diff / (60 * 60 * 1000) - day *24);
                        long minute = (diff / (60 * 1000) - day * 24 * 60 - hour * 60);
                        long s = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60);
                        //输出时间差
                        System.out.println(hour + "小时" + minute + "分" + s + "秒");
                        textView2.setText(hour + "小时" + minute + "分");
                    } 
                    catch(Exception e){
                    }
                }
            }
            catch(Exception e)
            {

            }
            }
        }


    class TimeThread extends Thread 
    {
            @Override
            public void run() {
                do {
                    try 
                    {
                        Thread.sleep(1000);
                        Message msg = new Message();
                        msg.what = 1;  //消息(一个整型值)
                        mHandler.sendMessage(msg);// 每隔1秒发送一个msg给mHandler
                    } catch (InterruptedException e)
                    {
                        e.printStackTrace();
                    }
                } while (true);
            }
    }


    private  Handler mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what)  
            {
            case 1:
                long sysTime = System.currentTimeMillis();
                CharSequence sysTimeStr = DateFormat.format("kk:mm:ss", sysTime);
                textView1.setText(sysTimeStr); //更新时间
                break;
            default:
                break;

            }
        }
    };

用这个试试
long days = diff / (1000 * 60 * 60 * 24);
long hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
long minutes = (diff - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60);
long second = ((diff - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) -
minutes * (1000 * 60)) / 1000;