您的位置:首页 > 其它

iphone--使用NSTimer实现倒计时

2012-02-22 21:14 302 查看
记得以前在看Iphone31天的时候做过一个,今天翻出来运行不了了,原因是我的IphoneSDK升级到3.1了,以前使用的是2.2.1,在2.2.1里面是可以使用NSCalendarDate的,但是在3.1里面不能够使用,怎么办,只好用NSTimer了,最后还是给实现了。代码也比较简单,开始运行viewDidLoad的时候加载 [NSTimerscheduledTimerWithTimeInterval:1.0 target:selfselector:@selector(timerFireMethod:)
userInfo:nilrepeats:YES];//使用timer定时,每秒触发一次

,然后就是写selector了。

-(void)timerFireMethod:(NSTimer*)theTimer

{

//NSDateFormatter *dateformatter =[[[NSDateFormatter alloc]init]autorelease];//定义NSDateFormatter用来显示格式

//[dateformatter setDateFormat:@"yyyy MM dd hh mmss"];//设定格式

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

NSDateComponents *shibo = [[NSDateComponentsalloc] init];//初始化目标时间(好像是世博会的日期)

[shibo setYear:2010];

[shibo setMonth:5];

[shibo setDay:1];



[shibo setHour:8];

[shibo setMinute:0];

[shibo setSecond:0];

NSDate *todate = [caldateFromComponents:shibo];//把目标时间装载入date

[shibo release];

// NSString *ssss = [dateformatterstringFromDate:dd];

// NSLog([NSString stringWithFormat:@"shiboshi:%@",ssss]);

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

// NSString *sss = [dateformatterstringFromDate:today];

// NSLog([NSString stringWithFormat:@"xianzaishi:%@",sss]);

//用来得到具体的时差

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

NSDateComponents *d = [cal components:unitFlagsfromDate:today toDate:todate options:0];

lab.text = [NSStringstringWithFormat:@"%d年%d月%d日%d时%d分%d秒",[d year],[d month], [d day],[d hour], [d minute], [d second]];

}

这样就实现了倒计时的功能。

原文地址:http://www.cocoachina.com/bbs/read.php?tid=73570&page=2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: