Java计算时间差

343 阅读1分钟

java计算时间差

计算执行任务所需要时间(秒)

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MAZHUANG";

    private String connectTime = "";
    private String finishTime = "";
    private int num_connectTime = 0;
    private int num_finishTime = 0;
    private int useTime = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mHandler.sendEmptyMessageDelayed(0, 200);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mHandler.removeMessages(0);
        mHandler.removeMessages(2);
        mHandler.removeMessages(1);
    }

    private int getUsedTime() {
        try {
            num_connectTime = Integer.parseInt(connectTime);
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            num_finishTime = Integer.parseInt(finishTime);
        } catch (Exception e) {
            e.printStackTrace();
        }
        useTime = num_finishTime - num_connectTime;
        Log.d(TAG, " CONNECT USETIME = " + useTime);
        return useTime;
    }

    private String getTimeStame() {
        long time = System.currentTimeMillis();
        String time_stamp = String.valueOf(time);
        return time_stamp;
    }

    private String stringToDate(String lo) {
        long time = Long.parseLong(lo);
        Date date = new Date(time);
        SimpleDateFormat sd = new SimpleDateFormat("mmss");
        return sd.format(date);
    }

    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 0:
                    connectTime = stringToDate(getTimeStame());//获取开始时间
                    mHandler.sendEmptyMessageDelayed(1, 5000);
                    break;
                case 1:
                    finishTime = stringToDate(getTimeStame());//获取结束时间
                    mHandler.sendEmptyMessageDelayed(2, 200);
                    break;
                case 2:
                    getUsedTime();//计算当前所用时间(秒)
                    break;
                default:
                    break;
            }
        }
    };
    
}