我有两个时间选择器。这些时间选择器允许用户选择时间,而不是自动将时间保存到两个不同的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;)如果你能提供一个例子,我们将不胜感激。
答案 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