使用NSTimer实现倒计时

今天在CocoaChina上面看到有人在问倒计时怎么做,记得以前在看Iphone31天的时候做过一个,今天翻出来运行不了了,原因是我的Iphone SDK升级到3.1了,以前使用的是2.2.1,在2.2.1里面是可以使用NSCalendarDate的,但是在3.1里面不能够使用,怎么办,只好用NSTimer了,最后还是给实现了。代码也比较简单,开始运行viewDidLoad的时候加载  [NSTimer scheduledTimerWithTimeIn terval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];//使用timer定时,每秒触发一次
,然后就是写selector了。
 
- (void)timerFireMethod:(NSTimer*)theTimer
{
  //NSDateFormatter *dateformatter = [[[NSDateFormatter alloc]init] autorelease];//定义NSDateFormatter用来显示格式
  //[dateformatter setDateFormat:@"yyyy MM dd hh mm ss"];//设定格式
  NSCalendar *cal = [NSCalendar currentCalendar];//定义一个NSCalendar对象
  NSDateComponents *shibo = [[NSDateComponents alloc] init];//初始化目标时间(好像是世博会的日期)
  [shibo setYear:2010];
  [shibo setMonth:5];
  [shibo setDay:1]; 使用NSTimer实现倒计时
  [shibo setHour:8];
  [shibo setMinute:0];
  [shibo setSecond:0];
 
  NSDate *todate = [cal dateFromComponents:shibo];//把目标时间装载入date
  [shibo release];
//  NSString *ssss = [dateformatter stringFromDate:dd];
//  NSLog([NSString stringWithFormat:@"shibo shi:%@",ssss]);
 
  NSDate *today = [NSDate date];//得到当前时间
//  NSString *sss = [dateformatter stringFromDate:today];
//  NSLog([NSString stringWithFormat:@"xianzai shi:%@",sss]);
  //用来得到具体的时差
  unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
  NSDateComponents *d = [cal components:unitFlags fromDate:today toDate:todate options:0];
  lab.text = [NSString stringWithFormat:@"%d年%d月%d日%d时%d分%d秒",[d year],[d month], [d day], [d hour], [d minute], [d second]];
}
这样就实现了倒计时的功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值