首页 > 解决方案 > 在android studio中计算两次之间的差异

问题描述

  1. 我创建了按钮来显示开始和停止停车的当前时间及其工作。

  2. 但是当我点击deductbtn时,手机上的应用程序会弹出并显示“我的应用程序1已停止”

  3. 我怎样才能解决这个问题?任何帮助都会非常有用。

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_payment_info);
    
    firebaseAuth = FirebaseAuth.getInstance();
    parkBtn = (Button)findViewById(R.id.parkBtn);
    stopparkBtn = (Button)findViewById(R.id.stopparkBtn);
    deductBtn = (Button)findViewById(R.id.deductBtn);
    timeResult = (TextView)findViewById(R.id.timeResult);
    timeResult2 = (TextView)findViewById(R.id.timeResult2);
    diffResult = (TextView)findViewById(R.id.diffResult);
    
    
    parkBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final Date d = new Date();
            SimpleDateFormat sdf1=new SimpleDateFormat("hh:mm a");
            final String currentDateTimeString = sdf1.format(d);
            timeResult.setText(currentDateTimeString);
    
        }
    });
    
    stopparkBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final Date d1= new Date();
            SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm a");
            final String currentDateTimeString1 = sdf2.format(d1);
            timeResult2.setText(currentDateTimeString1);
    
    
        }
    });
    
    deductBtn.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(View view) {
    
            float totalTime = Float.parseFloat(timeResult2.getText().toString());
            float totalTime1 = Float.parseFloat(timeResult.getText().toString());
            final float timeUsage = totalTime - totalTime1;
            diffResult.setText(String.valueOf(timeUsage));
    
        }
    });
    
    }
    
    }
    

标签: javaandroid

解决方案


新代码在这里:@Override public void onClick(View view) {

            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm a");
            Date date1 = null;
            try {
                date1 = simpleDateFormat.parse(timeResult.getText().toString());
            } catch (ParseException e) {
                e.printStackTrace();
            }
            Date date2 = null;
            try {
                date2 = simpleDateFormat.parse(timeResult2.getText().toString());
            } catch (ParseException e) {
                e.printStackTrace();
            }
            String diffResult= DateUtils.getRelativeTimeSpanString(date1.getTime(), date2.getTime(), DateUtils.FORMAT_SHOW_TIME).toString();
            deductBtn.setText(diffResult);
        }

推荐阅读