2016-09-26 6 views
-4

私はアプリケーションを開発しています。ここでは、日付と時刻のピッカーを使用したいと思います。日付と時刻を選択するには、選択した時刻の6時間前に結果時間を設定します。どのように私はこの時間を、適切な日付の時間をピックタイムの6時間前に設定するのですか? 例: 私は「30sep」と仮定し、時刻は「1:00 am」とし、表示したい日時は「29sep」と「7:00 pm」になります。 どうすればよいですか? 私は次のコードを使用しています:あなたは7時間を削除していて、それが1 AMだ場合、あなたは前の日に行く必要があります(当日変更されていませんが、とにかくあなたは、単にこれを呼び出すことができ、あなたのコードで時間と日付を選択する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

を代わりにあなたのswitchステートメントのは:

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

関連する問題