IOS 含天数、时、分、秒的倒计时

IOS 含天数、时、分、秒的倒计时


#pragma mark - 判断活动是否开始-倒计时

- (void)judementActiveTime

{


        //活动倒计时

        _activeTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(caculateActiveLeaveTime) userInfo:nil repeats:YES];

        [_activeTimer fire];


}


#pragma mark - 倒计时计数

- (void)caculateActiveLeaveTime

{

    //当前时间的时间戳

    NSDate *dateNow = [NSDate date];

    NSTimeInterval nowInterval = [dateNow timeIntervalSince1970];

    NSString *nowStr = [NSString stringWithFormat:@"%.0f",nowInterval];


    //倒计时的时间

    NSString *restTimeStr;


    if([self.falshSaleDatas.start isEqualToString:@"0"])

    {

        //距离活动结束倒计时

       restTimeStr = self.falshSaleDatas.enddate;

    

    }

    else if ([self.falshSaleDatas.start isEqualToString:@"1"]){

        //距离活动开始倒计时

        restTimeStr = self.falshSaleDatas.date;

    }

    

    NSDateFormatter *actFormatter = [[NSDateFormatter alloc] init];

    [actFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];

    NSDate *date = [actFormatter dateFromString:restTimeStr];


    

    NSString *activeTime = [NSString stringWithFormat:@"%ld", (long)[date timeIntervalSince1970]];


    //指定一个活动即将开始的时间戳

    //    NSString *activeTime =@"1451401200";

    

    if ([activeTime isEqualToString:nowStr])

    {

        

        _timeLab.text = @"倒计时  00:00:00";

        [_activeTimer invalidate];

        _activeTimer = nil;

        

        //调用刷新限时抢购接口

        [self getFlashSale];

        return;

    }

    

    //先获取相差后台给的时间与现在时间相差几天几小时几分钟几秒钟

    NSDate *timeDate = [NSDate dateWithTimeIntervalSince1970:(([activeTime doubleValue])-nowInterval-28800)];

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"dd HH:mm:ss"];

    NSString *timeStr = [formatter stringFromDate:timeDate];

    

    //分割字符串,获得天数

    NSArray *timeArr=[timeStr componentsSeparatedByString:@" "];

    NSLog(@"timeArr--%@, ---%@",timeArr[0],timeArr[1]);

    

    //重新添加格式,去掉天数(两个时间差小于24小时,系统自动归类时算1天,对显示不利)

    [formatter setDateFormat:@"HH:mm:ss"];

    NSString *timeStrCopy = [formatter stringFromDate:timeDate];

    

    if([self.falshSaleDatas.start isEqualToString:@"0"])

    {

       //距离活动结束倒计时

        if([timeArr[0] integerValue]>1){

            //如果两个时间差小于24小时,系统自动归类时算1天,显示时,需要减去1

           _timeLab.text = [NSString stringWithFormat:@"距活动结束仅剩 %d天 %@",[timeArr[0] integerValue]-1,timeStrCopy];

        }

        else{

            _timeLab.text = [NSString stringWithFormat:@"距活动结束仅剩  %@",timeStrCopy];

        }

        

    }

    else if ([self.falshSaleDatas.start isEqualToString:@"1"]){

        //距离活动开始倒计时

        if([timeArr[0] integerValue]>1){

            //如果两个时间差小于24小时,系统自动归类时算1天,显示时,需要减去1

            _timeLab.text = [NSString stringWithFormat:@"距活动开始还有 %d天 %@",[timeArr[0] integerValue]-1,timeStrCopy];

        }

        else{

            _timeLab.text = [NSString stringWithFormat:@"距活动开始还有  %@",timeStrCopy];

        }

 

    }

    

}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值