使用NSTimer实现倒计时
2012-06-14 14:29
459 查看
今天在CocoaChina上面看到有人在问倒计时怎么做,记得以前在看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]];
}
这样就实现了倒计时的功能。
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]];
}
这样就实现了倒计时的功能。
相关文章推荐
- iphone--使用NSTimer实现倒计时
- 使用NSTimer实现倒计时
- 使用NSTimer实现倒计时
- 使用NSTimer实现倒计时
- 使用NSTimer实现倒计时-备
- 使用NSTimer实现倒计时,Iphone幻灯片效果+背景音乐,
- 使用NSTimer实现倒计时
- 使用NSTimer实现倒计时
- 使用NSTimer和gcb实现倒计时
- 使用计时器实现倒计时(setTimeout())
- NSTimer知识点和倒计时的实现
- 使用NSTimer与UIView的动画,实现飘雪效果
- android使用Rxjava实现倒计时功能
- NSTimer知识点和倒计时的实现
- Android 使用CountDownTimer实现倒计时
- 使用Ajax的Time实现倒计时功能
- 使用GCD实现倒计时
- 使用单片机的定时器0和中断实现9到0的倒计时功能,并用数码管显示
- JAVASCRIPT使用setTimeout实现时间倒计时
- (六)Android中使用CountDownTimer实现倒计时功能