NSTimer 计时器的创建

//定时器

m_pTimer =[NSTimer scheduledTimerWithTimeInterval:1.0

                              target:self 

                              selector:@selector(calcuRemainTime)

                              userInfo:nil 

                              repeats:YES];

//开始时间获取

m_pStartDate =[NSDate date];

//    m_pStartDate= [[NSDate date] retain];

 

 

==============

 

#define TOTAL_TIME 3600

 

- (void)calcuRemainTime

{

double deltaTime =[[NSDate datetimeIntervalSinceDate:m_pStartDate];

 

//   NSLog(@"%.f",deltaTime);

//   NSLog(@"%d",(int)(deltaTime+0.5));

 

int remainTime= TOTAL_TIME -(int)(deltaTime+0.5) ;

 

if (remainTime< 0.0

{

[m_pTimer invalidate];

 

//TODO:

//game over

return;

}

[self showTime:remainTime];

 

}

 

 

- (void)showTime:(int)time

{

int inputSeconds= (int)time;

int hours=  inputSeconds/ 3600;

int minutes= ( inputSeconds - hours * 3600 )/ 60

int seconds= inputSeconds - hours * 3600 -minutes * 60

 

NSString *strTime= [NSString stringWithFormat:@"%.2d:%.2d:%.2d",hours,minutes,seconds];

 

//显示在文本视图中

NSLog(@"==%@",strTime);

 

}


第二种方式:

 [NSTimerscheduledTimerWithTimeInterval:1.0 target:selfselector:@selector(timerFireMethod:) userInfo:nilrepeats:YES];//使用timer定时,每秒触发一次,然后就是写selector了。

-(void)timerFireMethod:(NSTimer*)theTimer{


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

 

 //[dateformattersetDateFormat:@"yyyy MM dd hh mm ss"];//设定格式
 NSCalendar *cal = [NSCalendarcurrentCalendar];//定义一个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 = [caldateFromComponents:shibo];//把目标时间装载入date
 [shibo release];
// NSString *ssss = [dateformatter stringFromDate:dd];
// NSLog([NSString stringWithFormat:@"shiboshi:%@",ssss]);
 
 NSDate *today = [NSDatedate];//得到当前时间
// NSString *sss = [dateformatter stringFromDate:today];
// NSLog([NSString stringWithFormat:@"xianzaishi:%@",sss]);
 //用来得到具体的时差
 unsigned int unitFlags =NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit |NSHourCalendarUnit | NSMinuteCalendarUnit |NSSecondCalendarUnit;
 NSDateComponents *d = [calcomponents:unitFlags fromDate:today toDate:todateoptions:0];
 lab.text = [NSStringstringWithFormat:@"%d年%d月%d日%d时%d分%d秒",[d year],[d month], [d day],[d hour], [d minute], [d second]];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值