我正在開發一個涉及訂票的Android應用程序。不知何故,我導入Google日曆和時鐘[使用Android Studio v1.5中提供的默認版本]。 我的機票預訂條件包括在選擇接機日期和時間的同時減去時間和日期以避免將來出現問題。 現在在這種情況下,我想改變以下事情:如何根據時間更改[android]在日曆中記錄日期?
反向時間:當用戶選擇一個特定的時間[在24小時制],它給這個用戶一個新的時間少於7小時的採摘時間。即如果我在下午2點選擇我的時間,則應在同一日期的上午9點顯示提貨時間。我不知何故設法應用每小時減去7小時的條件。但是我怎麼能這樣做呢,因爲讓一天中的每個小時都有條件讓人頭疼。如果有解決方案?
更新:我找到了解決方案,但問題是,如果我選擇上午時間它顯示時間在 - [減]。
現在第二個問題是,如果有人在早上凌晨2點的任何一個月的第一天預訂我的機票,我該如何將他的日期更改爲上一個日期?由於我是從拾取日期
減去7小時對於實例[正確的病情,我很期待]:如果一些用戶選擇2AM於3月1日,然後他/她的攝像時間和日期應該是在2月28日晚上9點。
請建議..!我附上我正在使用的代碼。
public class MainActivity extends AppCompatActivity implements
View.OnClickListener {
Button btnDatePicker, btnTimePicker;
EditText txtDate, txtTime;
private int mYear, mMonth, mDay, mHour, mMinute;
TextView tvpick;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnDatePicker = (Button) findViewById(R.id.btn_date);
btnTimePicker = (Button) findViewById(R.id.btn_time);
txtDate = (EditText) findViewById(R.id.in_date);
txtTime = (EditText) findViewById(R.id.in_time);
tvpick = (TextView) findViewById(R.id.tvpicktime);
btnDatePicker.setOnClickListener(this);
btnTimePicker.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v == btnDatePicker) {
// Get Current Date
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
txtDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
}
if (v == btnTimePicker) {
// Get Current Time
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
// c.add(Calendar.HOUR_OF_DAY, -6);
// Date picktime= c.getTime();
// tvpick.setText(String.valueOf(picktime));
// Launch Time Picker Dialog
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
txtTime.setText((hourOfDay) + ":" + minute);
// tvpick.setText((hourOfDay+(-6)) + ":" + minute);
if(hourOfDay==00)
{
tvpick.setText((17) + ":" + minute);
}
else if(hourOfDay==1)
{
tvpick.setText((18) + ":" + minute);
}
else if(hourOfDay==2)
{
tvpick.setText((19) + ":" + minute);
}
else if(hourOfDay==3)
{
tvpick.setText((20) + ":" + minute);
}
else if(hourOfDay==4)
{
tvpick.setText((21) + ":" + minute);
}
else if(hourOfDay==5)
{
tvpick.setText((22) + ":" + minute);
}
else if(hourOfDay==6)
{
tvpick.setText((23) + ":" + minute);
}
else if(hourOfDay==7)
{
tvpick.setText((00) + ":" + minute);
}
else if(hourOfDay==8)
{
tvpick.setText((01) + ":" + minute);
}
else if(hourOfDay==9)
{
tvpick.setText((02) + ":" + minute);
}
else if(hourOfDay==10)
{
tvpick.setText((03) + ":" + minute);
}
else if(hourOfDay==11)
{
tvpick.setText((04) + ":" + minute);
}
else if(hourOfDay==12)
{
tvpick.setText((05) + ":" + minute);
}
if(hourOfDay==13)
{
tvpick.setText((06) + ":" + minute);
}
else if(hourOfDay==14)
{
tvpick.setText((07) + ":" + minute);
}
else if(hourOfDay==15)
{
tvpick.setText((8) + ":" + minute);
}
else if(hourOfDay==16)
{
tvpick.setText((9) + ":" + minute);
}
else if(hourOfDay==17)
{
tvpick.setText((10) + ":" + minute);
}
else if(hourOfDay==18)
{
tvpick.setText((11) + ":" + minute);
}
else if(hourOfDay==19)
{
tvpick.setText((12) + ":" + minute);
}
else if(hourOfDay==20)
{
tvpick.setText((13) + ":" + minute);
}
else if(hourOfDay==21)
{
tvpick.setText((14) + ":" + minute);
}
else if(hourOfDay==22)
{
tvpick.setText((15) + ":" + minute);
}
else if(hourOfDay==23)
{
tvpick.setText((16) + ":" + minute);
}
}
}, mHour, mMinute, false);
timePickerDialog.show();
}
}
}
您是否試圖通過減去7小時來調整時區?如果是這樣,你這樣做是非常錯誤和非常困難的方式。或者是業務邏輯的零七小時部分? –