-(void)viewWillAppear:(BOOL)animated {
//界面将要出现的时候开启定时器
if(_maintainTimer){
[_maintainTimer setFireDate:[NSDate distantPast]];
}else{
_maintainTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showNowTimer) userInfo:nil repeats:YES];
[_maintainTimer fire];
//滑动tableview时,主线程去处理界面了,没空管定时器,所以需要把定时器开到另外的线程中,才能实现滑动tableview时,定时器也不停止。
[[NSRunLoop currentRunLoop] addTimer:_maintainTimer forMode:NSRunLoopCommonModes];
}
}
-(void)viewWillDisappear:(BOOL)animated{
//界面将要消失的时候关闭定时器
[_maintainTimer setFireDate:[NSDate distantFuture]];
}
-(void)showNowTimer {
/****************计算时间差一*******************/
NSDateFormatter *date = [[NSDateFormatter alloc] init];
//设置日期格式
[date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSCalendar *cal = [NSCalendar currentCalendar];
unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSString *nowStr = [date stringFromDate:nowDate];
NSDateComponents *d = [cal components:unitFlags fromDate:[date dateFromString:nowStr] toDate:[date dateFromString:[Manager TimeChange:self.endTime]] options:0];
NSLog(@"%ld天%ld小时%ld分钟%ld秒", (long)[d day],(long)[d hour], (long)[d minute], (long)[d second]);
/**************计算时间差二******************/
NSTimeInterval time = [[date dateFromString:[Manager TimeChange:self.endTime]] timeIntervalSinceDate:nowDate];
int hour = (int)(time / 3600);
NSLog(@"两个时间相差%d小时",hour);
}