利用NSTimer实现
//在需要调用倒计时的地方写
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
- (void)timerFireMethod:(NSTimer*)theTimer
{
NSCalendar *cal = [NSCalendar currentCalendar];//定义一个NSCalendar对象
NSDateComponents *shibo = [[[NSDateComponents alloc] init] autorelease];//初始化目标时间
//显示当前时间
NSDate *date = [NSDate date];
NSDateFormatter *format = [[NSDateFormatter alloc] init];
NSDateFormatter *format2 = [[NSDateFormatter alloc] init];
NSDateFormatter *format3 = [[NSDateFormatter alloc] init];
NSDateFormatter *format4 = [[NSDateFormatter alloc] init];
NSDateFormatter *format5 = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY"];
[format2 setDateFormat:@"MM"];
[format3 setDateFormat:@"dd"];
[format4 setDateFormat:@"HH"];
[format5 setDateFormat:@"mm"];
//HH24进制 hh12进制
// //YYYY代表4为的年
// //MM代表两位的月
// //dd代表两位的日
// //HH代表24进制小时
// //mm代表两位的分钟
// //ss代表两位的秒
NSString *dateStr = [format stringFromDate:date];//转为北京时间
NSString *dateStr2 = [format2 stringFromDate:date];//转为北京时间
NSString *dateStr3 = [format3 stringFromDate:date];//转为北京时间
NSString *dateStr4 = [format4 stringFromDate:date];//转为北京时间
NSString *dateStr5 = [format5 stringFromDate:date];//转为北京时间
NSInteger year = [dateStr intValue];
NSInteger month = [dateStr2 intValue];
NSInteger day = [dateStr3 intValue];
NSInteger hour = [dateStr4 intValue];
NSInteger minute = [dateStr5 intValue];
NSInteger Second = [_Str2 intValue];//获取的秒数
[shibo setYear:year];
[shibo setMonth:month];
[shibo setDay:day];//使用NSTimer实现倒计时
[shibo setHour:hour];
[shibo setMinute:minute];
[shibo setSecond:Second];
NSDate *todate = [cal dateFromComponents:shibo];//把目标时间装载入date
// [shibo release];
NSDate *today = [NSDate date];//得到当前时间
//用来得到具体的时差
unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *d = [cal components:unitFlags fromDate:today toDate:todate options:0];
if (Second < 0) {
self.Mexpires.text = @"已结束";
}else{
self.Mexpires.text = [NSString stringWithFormat:@"剩余%d日%d时%d分%d秒", [d day], [d hour], [d minute], [d second]];
self.Mexpires.font = [UIFont fontWithName:@"Arial" size:14];
}
}