ios nstimer实现延时_IOS_IOS开发代码分享之用nstimer实现倒计时功能,用nstimer实现倒计时功能,废话 - phpStudy...

IOS开发代码分享之用nstimer实现倒计时功能

用nstimer实现倒计时功能,废话不多说,直接上代码,详细解释请参照注释

//

[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];

//

- (void)timerFireMethod:(NSTimer *)theTimer

{

BOOL timeStart = YES;

NSCalendar *cal = [NSCalendar currentCalendar];//定义一个NSCalendar对象

NSDateComponents *endTime = [[NSDateComponents alloc] init];    //初始化目标时间...

NSDate *today = [NSDate date];    //得到当前时间

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

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSDate *dateString = [dateFormatter dateFromString:todate];

NSString *overdate = [dateFormatter stringFromDate:dateString];

//    NSLog(@"overdate=%@",overdate);

static int year;

static int month;

static int day;

static int hour;

static int minute;

static int second;

if(timeStart) {//从NSDate中取出年月日,时分秒,但是只能取一次

year = [[overdate substringWithRange:NSMakeRange(0, 4)] intValue];

month = [[overdate substringWithRange:NSMakeRange(5, 2)] intValue];

day = [[overdate substringWithRange:NSMakeRange(8, 2)] intValue];

hour = [[overdate substringWithRange:NSMakeRange(11, 2)] intValue];

minute = [[overdate substringWithRange:NSMakeRange(14, 2)] intValue];

second = [[overdate substringWithRange:NSMakeRange(17, 2)] intValue];

timeStart= NO;

}

[endTime setYear:year];

[endTime setMonth:month];

[endTime setDay:day];

[endTime setHour:hour];

[endTime setMinute:minute];

[endTime setSecond:second];

NSDate *overTime = [cal dateFromComponents:endTime]; //把目标时间装载入date

//用来得到具体的时差,是为了统一成北京时间

unsigned int unitFlags = NSYearCalendarUnit| NSMonthCalendarUnit| NSDayCalendarUnit| NSHourCalendarUnit| NSMinuteCalendarUnit| NSSecondCalendarUnit;

NSDateComponents *d = [cal components:unitFlags fromDate:today toDate:overTime options:0];

NSString *t = [NSString stringWithFormat:@"%d", [d day]];

NSString *h = [NSString stringWithFormat:@"%d", [d hour]];

NSString *fen = [NSString stringWithFormat:@"%d", [d minute]];

if([d minute] < 10) {

fen = [NSString stringWithFormat:@"0%d",[d minute]];

}

NSString *miao = [NSString stringWithFormat:@"%d", [d second]];

if([d second] < 10) {

miao = [NSString stringWithFormat:@"0%d",[d second]];

}

//    NSLog(@"===%@天 %@:%@:%@",t,h,fen,miao);

[_longtime setText:[NSString stringWithFormat:@"%@天 %@:%@:%@",t,h,fen,miao]];

if([d second] > 0) {

//计时尚未结束,do_something

//        [_longtime setText:[NSString stringWithFormat:@"%@:%@:%@",d,fen,miao]];

} else if([d second] == 0) {

//计时结束 do_something

} else{

//计时器失效

[theTimer invalidate];

}

}

相关阅读:

JavaScript的removeChild()函数用法详解

win7系统电脑有鼠标无键盘问题的解决办法

Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解

AngularJS中取消对HTML片段转义的方法例子

jQuery Mobile 导航栏代码

JavaScript中日期函数的相关操作知识

Android中getActivity()为null的解决办法

Android学习之Flux架构入门

Win8怎么修改C盘的名字 Win8修改C盘的名字教程

CSS工作原理及CSS规则命名介绍

让table变成exls的示例代码

一句代码解决css ie8兼容性问题

网页切图的CSS和布局经验与要点

JS截取与分割字符串常用技巧总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值