//定时器
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 date] timeIntervalSinceDate: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]];
}