2016-09-26 3 views
-4

앱을 개발 중입니다. 여기에 날짜 및 시간 선택기를 사용하고 싶습니다. 날짜와 시간을 선택하려면 선택 시간보다 6 시간 전에 결과 시간을 설정하고 싶습니다. 선택 시간 6 시간 전에 시간을 적절한 날짜로 설정하려면 어떻게합니까? 예 : "30sep"라고 가정하고 시간이 "1:00 am"이라고 가정하면 날짜와 시간은 "29sep"와 "7:00 pm"이됩니다. 어떻게해야합니까? 당신이 7시간를 제거하고 당신이 그것을 오전 1시 있다면, 당신은 전날에 가야한다 (요일을 변경하지 않는 코드에서날짜와 시간을 선택하는 방법 6 시간 전에 날짜와 시간을 설정하는 방법은 무엇입니까?

@Override 
    public void onClick(View v) { 

     if (v == pdate) { 

      // 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) { 

          eddate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); 

         } 
        }, mYear, mMonth, mDay); 
      datePickerDialog.show(); 
     } 
     if (v == ptime) { 

      // Get Current Time 
      final Calendar c = Calendar.getInstance(); 
      mHour = c.get(Calendar.HOUR_OF_DAY); 
      mMinute = c.get(Calendar.MINUTE); 

      // Launch Time Picker Dialog 
      TimePickerDialog timePickerDialog = new TimePickerDialog(this, 
        new TimePickerDialog.OnTimeSetListener() { 

         @Override 
         public void onTimeSet(TimePicker view, int hourOfDay, 
               int minute) { 


          edtime.setText(hourOfDay + ":" + minute); 
          if(hourOfDay==00) 
          { 
           tvpicktime.setText((17) + ":" + minute); 

          } 
          else if(hourOfDay==1) 
          { 
           tvpicktime.setText((18) + ":" + minute); 
          } 
          else if(hourOfDay==2) 
          { 
           tvpicktime.setText((19) + ":" + minute); 
          } 
          else if(hourOfDay==3) 
          { 
           tvpicktime.setText((20) + ":" + minute); 
          } 
          else if(hourOfDay==4) 
          { 
           tvpicktime.setText((21) + ":" + minute); 
          } 
          else if(hourOfDay==5) 
          { 
           tvpicktime.setText((22) + ":" + minute); 
          } 
          else if(hourOfDay==6) 
          { 
           tvpicktime.setText((23) + ":" + minute); 
          } 
          else if(hourOfDay==7) 
          { 
           tvpicktime.setText((00) + ":" + minute); 
          } 
          else if(hourOfDay==8) 
          { 
           tvpicktime.setText((01) + ":" + minute); 
          } 
          else if(hourOfDay==9) 
          { 
           tvpicktime.setText((02) + ":" + minute); 
          } 
          else if(hourOfDay==10) 
          { 
           tvpicktime.setText((03) + ":" + minute); 
          } 
          else if(hourOfDay==11) 
          { 
           tvpicktime.setText((04) + ":" + minute); 
          } 
          else if(hourOfDay==12) 
          { 
           tvpicktime.setText((05) + ":" + minute); 
          } 
          if(hourOfDay==13) 
          { 
           tvpicktime.setText((06) + ":" + minute); 
          } 
          else if(hourOfDay==14) 
          { 
           tvpicktime.setText((07) + ":" + minute); 
          } 
          else if(hourOfDay==15) 
          { 
           tvpicktime.setText((8) + ":" + minute); 
          } 
          else if(hourOfDay==16) 
          { 
           tvpicktime.setText((9) + ":" + minute); 
          } 
          else if(hourOfDay==17) 
          { 
           tvpicktime.setText((10) + ":" + minute); 
          } 
          else if(hourOfDay==18) 
          { 
           tvpicktime.setText((11) + ":" + minute); 
          } 
          else if(hourOfDay==19) 
          { 
           tvpicktime.setText((12) + ":" + minute); 
          } 
          else if(hourOfDay==20) 
          { 
           tvpicktime.setText((13) + ":" + minute); 
          } 
          else if(hourOfDay==21) 
          { 
           tvpicktime.setText((14) + ":" + minute); 
          } 
          else if(hourOfDay==22) 
          { 
           tvpicktime.setText((15) + ":" + minute); 
          } 
          else if(hourOfDay==23) 
          { 
           tvpicktime.setText((16) + ":" + minute); 
          } 
         } 
        }, mHour, mMinute, false); 

      timePickerDialog.show(); 
     } 

     } 

답변

0

하지만, 어쨌든 당신은 단순히이를 호출 할 수 나는 다음과 같은 코드를 사용하고 대신 스위치 문은 :

c.add(Calendar.HOUR_OF_DAY, -6); 

이 부가됩니다 -6 시간 그것은 텍스트 필드에 결과를 보여 6 시간

을 제거 할 수 있도록

SimpleDateFormat simpleDate = new SimpleDateFormat("dd/MM/yyyy"); 
myTextField.setText(simpleDate.format(c.getTime())); 
+0

하지만 날짜는? ..... 나는 내 픽업 시간에 따라 날짜를 원합니다! – rohiH

+0

@rohiH 이것은 모든 것을 처리해 줄 것입니다. 그는 시간, 일, 달 및 심지어 년 (01-01-2016의 경우)을 관리 할 것입니다. 그래서이 코드를 호출하면 완료됩니다. –

+0

이 코드는 음수 값을 나타내며 적절한 날짜를 표시하지 않습니다. 00:00 am - 5:00 am에 문제가 발생합니다. – rohiH

관련 문제