Получить неправильное значение времени окончания (выходит за пределы 60 минут)

Я работаю над календарем. Когда я нажимаю на пустое представление, мне нужно получить время начала и время окончания. Я правильно получаю время начала, но время окончания превышает 60 минут.

Например: 16:69, 16:79

Мне нужно как 5:09 вечера, 5:19 вечера

Пожалуйста, проверьте мой код, когда я добавляю 60 минут, он выходит за пределы 60 минут

mWeekView.setEmptyViewClickListener(new
 WeekView.EmptyViewClickListener() {

     @Override
     public void onEmptyViewClicked(Calendar time) {

         String startTime = String.format("%02d:%02d",time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE));
         String endtime   = String.format("%02d:%02d",time.get(Calendar.HOUR_OF_DAY),60+time.get(Calendar.MINUTE));/*time.getTimeInMillis()+60*60*1000*/
         String startdate = String.format("%d/%s/%s",time.get(Calendar.DAY_OF_MONTH),time.get(Calendar.MONTH)+1,time.get(Calendar.YEAR));


         Intent intent = new Intent(getActivity(),AddAppointment.class);
         intent.putExtra("daystartdate", startdate);
         intent.putExtra("daystartTime",startTime);
         intent.putExtra("dayendtime",endtime);
         startActivity(intent);
     }
 });
2
user2852617 24 Апр 2017 в 09:45

2 ответа

Лучший ответ

Я предполагаю, что вы хотите добавить час к текущему объекту Calendar, поэтому вам нужно будет создать новый объект календаря и добавить к нему нужное время, или вы можете использовать уже переданный объект time , Например,

mWeekView.setEmptyViewClickListener(new
 WeekView.EmptyViewClickListener() {

     @Override
     public void onEmptyViewClicked(Calendar time) {

         String startTime = String.format("%02d:%02d",time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE));
         time.add(Calendar.MONTH, 1);
         String startdate = String.format("%d/%s/%s",time.get(Calendar.DAY_OF_MONTH),time.get(Calendar.MONTH)+1,time.get(Calendar.YEAR));
         time.add(Calendar.MONTH, -1);
         time.add(Calendar.MINUTE, 60);
         String endtime   = String.format("%02d:%02d",time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE));/*time.getTimeInMillis()+60*60*1000*/


         Intent intent = new Intent(getActivity(),AddAppointment.class);
         intent.putExtra("daystartdate", startdate);
         intent.putExtra("daystartTime",startTime);
         intent.putExtra("dayendtime",endtime);
         startActivity(intent);
     }
 });

Надеюсь это поможет!

4
Omar El Halabi 24 Апр 2017 в 06:58

Для решения вы используете календарь Util методами

Для времени начала вы можете использовать методы Calendar.setTime (Date date). а для конечного времени вы можете использовать тот же экземпляр календаря и добавить к нему 60 минут с помощью метода calender.add (int time, Calendar.Minutes);

Это может помочь вам.

1
jagteshwar751 24 Апр 2017 в 06:54
43581453