获得两次android之间的区别

时间:2015-03-20 00:26:54

标签: android timepicker

我有两个时间选择器。这些时间选择器允许用户选择时间,而不是自动将时间保存到两个不同的Textview。例如,时间选择器设置为下午4:00,时间选择器2设置为下午6点。

时间选择器一:

    // Create Calender Instance//
    calendar = Calendar.getInstance();

    // Creates New Time Picker Dialog//
    TimePickerDialog timePickerDialog = TimePickerDialog.newInstance(
            NewEvent.this,
            calendar.get(Calendar.HOUR_OF_DAY),
            calendar.get(Calendar.MINUTE),
            false
    );
    timePickerDialog.show(getFragmentManager(), TIMEPICKER_TAG);

    // Puts It Into 12 Hour Format//
    timePickerDialog.setOnTimeSetListener(new   
    TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(RadialPickerLayout radialPickerLayout,  
            int hourOfDay, int minute) {
            String timeSet;
            if (hourOfDay > 12) {
                hourOfDay -= 12;
                timeSet = "PM";
            } else if (hourOfDay == 0) {
                hourOfDay += 12;
                timeSet = "AM";
            } else if (hourOfDay == 12)
                timeSet = "PM";
            else
                timeSet = "AM";

            String min;
            if (minute < 10)
                min = "0" + minute;
            else
                min = String.valueOf(minute);

            // Append in a StringBuilder//
            String aTime = String.valueOf(hourOfDay) + ':' + min + " " 
            + timeSet;
            starttime.setText(aTime);
        }

    });

时间选择器二:

    // Create Calender Instance//
    calendar2 = Calendar.getInstance();

    // Creates New Time Picker Dialog//
    TimePickerDialog timePickerDialog2 = TimePickerDialog.newInstance(
            NewEvent.this,
            calendar2.get(Calendar.HOUR_OF_DAY),
            calendar2.get(Calendar.MINUTE),
            false
    );
    timePickerDialog2.show(getFragmentManager(), TIMEPICKER_TAG2);

    // Puts It Into 12 Hour Format//
    timePickerDialog2.setOnTimeSetListener(new 
    TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(RadialPickerLayout radialPickerLayout, 
            int hourOfDay, int minute) {
            String timeSet;
            if (hourOfDay > 12) {
                hourOfDay -= 12;
                timeSet = "PM";
            } else if (hourOfDay == 0) {
                hourOfDay += 12;
                timeSet = "AM";
            } else if (hourOfDay == 12)
                timeSet = "PM";
            else
                timeSet = "AM";

            String min;
            if (minute < 10)
                min = "0" + minute;
            else
                min = String.valueOf(minute);

            // Append in a StringBuilder//
            String aTime = String.valueOf(hourOfDay) + ':' + min + " " 
            + timeSet;
            endtime.setText(aTime);
        }

    });

我要做的是取时间选择器的值(例如6:00)并按时间选择器一的值(4:00)减去它,然后将两次(2:00)之间的差值减去一个新的textview(Textview TotalTime;)如果你能提供一个例子,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

Joda时间不错,但又是另一种依赖。

不能说这会适用于所有条件,但它会让你开始:

      Calendar cal1 = Calendar.getInstance();
      cal1.set(Calendar.HOUR_OF_DAY, 6);
      cal1.set(Calendar.MINUTE,30);
      cal1.set(Calendar.SECOND, 0);

      System.out.println("Cal: " + cal1.getTime().toString());

       long second = TimeUnit.MILLISECONDS.convert(4, TimeUnit.HOURS);
       second += TimeUnit.MILLISECONDS.convert(12, TimeUnit.MINUTES);
       second += TimeUnit.MILLISECONDS.convert(0, TimeUnit.SECONDS);

       long diff = cal1.getTimeInMillis() - second;

      Calendar cal2 = Calendar.getInstance();
      cal2.setTimeInMillis(diff);

      System.out.println("Cal2: " + cal2.getTime().toString());

结果:

Cal: Thu Mar 19 06:30:00 EDT 2015
Cal2: Thu Mar 19 02:18:00 EDT 2015
相关问题