从 TimePickerDialog 到日期
From TimePickerDialog to a Date
我正在寻找一种有效的方法来将我从 TimePickerDialog 获得的 小时 和 分钟 转换为日期对象。
我需要一个方法,该方法必须知道输入日期是否距现在 () 最多 12 小时。所以也许你可以让我了解一种甚至不使用 Date 对象就可以做到这一点的方法。
PS :在我的 TimePickerDialog 中,我会考虑 now() 之后的每个时间(例如:在 8:00 处设置 5:00 是在 21 小时内)。
PS 2:我用的是24小时格式。
谢谢:)
我认为您不必为此使用 Date 对象。这是一个简单的例子。假设您有一个按钮,单击它会向您显示 TimePickerDialog。
Button 的 onClick() 事件看起来像这样
@Override
public void onClick(View v) {
// Process to get Current Time
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
TimePickerDialog tpd = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
pHour = hourOfDay;
int difference = pHour-mHour;
if(difference < 0) {
int remaining = 24 + difference;
if(remaining <= 12) {
// Less than or equal to 12 hours from now
// isValidTime is a boolean variable defined at the top
isValidTime = true;
}
else{
// More than 12 hours
isValidTime = false;
}
}
else {
int remaining = difference;
if(remaining <= 12) {
// Less than or equal to 12 hours from now
isValidTime = true;
}
else{
// More than 12 hours
isValidTime = false;
}
}
// Call your method with the isValidTime parameter
yourMethodThatNeedsBoolean(isValidTime );
}
}, mHour, mMinute,false);
tpd.show();
}
private void yourMethodThatNeedsBoolean(boolean valid) {
if(valid) {
Toast.makeText(MainActivity.this, "Time is valid", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "Time is invalid", Toast.LENGTH_LONG).show();
}
}
请注意,pHour、mHour 和 mMinute 是整数,而 isValidTime 是布尔值,我已经在代码顶部声明了它(此处未显示)。
我正在寻找一种有效的方法来将我从 TimePickerDialog 获得的 小时 和 分钟 转换为日期对象。
我需要一个方法,该方法必须知道输入日期是否距现在 () 最多 12 小时。所以也许你可以让我了解一种甚至不使用 Date 对象就可以做到这一点的方法。
PS :在我的 TimePickerDialog 中,我会考虑 now() 之后的每个时间(例如:在 8:00 处设置 5:00 是在 21 小时内)。
PS 2:我用的是24小时格式。
谢谢:)
我认为您不必为此使用 Date 对象。这是一个简单的例子。假设您有一个按钮,单击它会向您显示 TimePickerDialog。
Button 的 onClick() 事件看起来像这样
@Override
public void onClick(View v) {
// Process to get Current Time
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
TimePickerDialog tpd = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
pHour = hourOfDay;
int difference = pHour-mHour;
if(difference < 0) {
int remaining = 24 + difference;
if(remaining <= 12) {
// Less than or equal to 12 hours from now
// isValidTime is a boolean variable defined at the top
isValidTime = true;
}
else{
// More than 12 hours
isValidTime = false;
}
}
else {
int remaining = difference;
if(remaining <= 12) {
// Less than or equal to 12 hours from now
isValidTime = true;
}
else{
// More than 12 hours
isValidTime = false;
}
}
// Call your method with the isValidTime parameter
yourMethodThatNeedsBoolean(isValidTime );
}
}, mHour, mMinute,false);
tpd.show();
}
private void yourMethodThatNeedsBoolean(boolean valid) {
if(valid) {
Toast.makeText(MainActivity.this, "Time is valid", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "Time is invalid", Toast.LENGTH_LONG).show();
}
}
请注意,pHour、mHour 和 mMinute 是整数,而 isValidTime 是布尔值,我已经在代码顶部声明了它(此处未显示)。