关于 iOS 中两个时间实现联动的解决方案

首先说一下我们的功能需求是这个样子的:

默认start time为当前时间的下个半点或者整点 

1、例如当前时间为14:14,则start time应为14:30, end time为15:00 

2、例如当前时间为14:34,则start time应为15:00, end time为15:30

并且修改start time 时候 end time的时间会跟着联动,总是比start time多半个小时,但是如果我们改动了end time ,start time 不会跟着一起改变,duration  一直为两者之差,如果end time 小于start time,那么 end time 时间的day  自动为start time day +1,废话不多说,直接上代码:

 int minute = [[NSDate date] minute];
        if(minute > 30){
            self.stimeView. date = [[NSDate date]addMinute:(60 - minute)];
        }else {
            self.stimeView.date = [[NSDate date]addMinute:(30 - minute)];
        }
        self.entityValue.startTime = self.stimeView.date;
        self.etimeView.date  = [ self.stimeView.date addMinute:30];
       
        self.entityValue.endTime = self.etimeView.date;
上述代码的功能主要是实现了 默认 start time 为当前时间的下个半点或者整点与start time 与 end time 相隔30min这两个功能(模型在这里就不写了,需要自己建立)

  int hour = [self.entityValue.endTime hour];
        int minute = [self.entityValue.endTime minute];
        int second = [self.entityValue.endTime second];
         NSString *b = [self.entityValue.endTime stringWithFormat:@"HH:mm:ss"];
        self.entityValue.endTime = [self.entityValue.startTime addDay:1];
        NSString *myEndTime = [NSString stringWithFormat:@"%@", self.entityValue.endTime];
        NSArray *timeBlock = [myEndTime componentsSeparatedByString:@" "];
        NSString *newEndTime = [NSString stringWithFormat:@"%@ %@",timeBlock[0],b];
        self.etimeView.date = [newEndTime dateWithFormat:@"yyyy-MM-dd HH:mm:ss"];
这个代码主要实现了当end time 比start time 时间小的时候的处理情况,当然我们还有其他处理办法,需要根据功能去进行相应的处理了。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值