2

得到错误的结束时间值(超过 60 分钟)

我正在处理日历视图。当我单击一个空视图时,我需要获取开始时间和结束时间我正在正确获取开始时间但结束时间超过 60 分钟

例如:下午 4 点 69 分、下午 4 点 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);
     }
 });
4

2 回答 2

4

我假设您想为当前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);
     }
 });

希望这可以帮助!

于 2017-04-24T06:53:57.753 回答
1

对于您使用日历 Util 方法的解决方案

对于开始时间,您可以使用 Calendar.setTime(Date date) 方法。对于结束时间,您可以使用相同的日历实例并使用方法 calender.add(int time, Calendar.Minutes); 添加 60 分钟。

它可以帮助你。

于 2017-04-24T06:54:50.703 回答