qq_40723031 2017-11-15 11:48 采纳率: 0%
浏览 1361

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

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;

            }
        }
    };
  • 写回答

1条回答 默认 最新

  • 周末不想在家 2017-11-16 02:14
    关注

    用这个试试
    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;

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧