热门IT资讯网

iOS 时间分钟秒的倒计时

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,#import "ViewController.h"@interface ViewController (){BOOL timeStart;NSMutableArray *savaTimeArry;}

#import "ViewController.h"


@interface ViewController ()

{

BOOL timeStart;

NSMutableArray *savaTimeArry;

}

@end


@implementation ViewController


- (void)viewDidLoad {

[super viewDidLoad];


[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];

timeStart = YES;


}



- (void)timerFireMethod:(NSTimer *)theTimer

{

NSCalendar *cal = [NSCalendar currentCalendar];//定义一个NSCalendar对象

NSDateComponents *endTime = [[NSDateComponents alloc] init]; //初始化目标时间...

NSDate *today = [NSDate date]; //得到当前时间

NSDate *date = [NSDate dateWithTimeInterval:117000 sinceDate:today];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString *dateString = [dateFormatter stringFromDate:date];

static int year;

static int month;

static int day;

static int hour;

static int minute;

static int second;

if(timeStart)

{//NSDate中取出年月日,时分秒,但是只能取一次

year = [[dateString substringWithRange:NSMakeRange(0, 4)] intValue];

month = [[dateString substringWithRange:NSMakeRange(5, 2)] intValue];

day = [[dateString substringWithRange:NSMakeRange(8, 2)] intValue];

hour = [[dateString substringWithRange:NSMakeRange(11, 2)] intValue];

minute = [[dateString substringWithRange:NSMakeRange(14, 2)] intValue];

second = [[dateString substringWithRange:NSMakeRange(17, 2)] intValue];

timeStart= NO;

}

[endTime setYear:year];

[endTime setMonth:month];

[endTime setDay:day];

[endTime setHour:hour];

[endTime setMinute:minute];

[endTime setSecond:second];

NSDate *todate = [cal dateFromComponents:endTime]; //把目标时间装载入date

//用来得到具体的时差,是为了统一成北京时间

unsigned int unitFlags = NSYearCalendarUnit| NSMonthCalendarUnit| NSDayCalendarUnit| NSHourCalendarUnit| NSMinuteCalendarUnit| NSSecondCalendarUnit;

NSDateComponents *d = [cal components:unitFlags fromDate:today toDate:todate options:0];

NSString *fen = [NSString stringWithFormat:@"%ld", [d minute]];

NSString *hou = [NSString stringWithFormat:@"%ld",[d hour]];

if([d hour]<10)

{

hou = [NSString stringWithFormat:@"0%ld",[d hour]];

}

if([d minute] < 10) {

fen = [NSString stringWithFormat:@"0%ld",[d minute]];

}

NSString *miao = [NSString stringWithFormat:@"%ld", [d second]];

if([d second] < 10) {

miao = [NSString stringWithFormat:@"0%ld",[d second]];

}

if([d second] > 0)

{

savaTimeArry = [NSMutableArray array];

NSString *shouTimer= [NSString stringWithFormat:@"%@%@%@",hou,fen,miao];

NSString *b1= [shouTimer substringWithRange:NSMakeRange(0,1)];

NSString *b2= [shouTimer substringWithRange:NSMakeRange(1,1)];

NSString *b3= [shouTimer substringWithRange:NSMakeRange(2,1)];

NSString *b4= [shouTimer substringWithRange:NSMakeRange(3,1)];

NSString *b5= [shouTimer substringWithRange:NSMakeRange(4,1)];

NSString *b6= [shouTimer substringWithRange:NSMakeRange(5,1)];

[savaTimeArry addObject:b1];

[savaTimeArry addObject:b2];

[savaTimeArry addObject:b3];

[savaTimeArry addObject:b4];

[savaTimeArry addObject:b5];

[savaTimeArry addObject:b6];

[self showtimeView];

} else if([d second] == 0)

{

//计时1分钟结束,do_something

} else

{

[theTimer invalidate];

}

}



- (void)showtimeView

{

for(int i = 0 ;i <6;i++)

{

UIButton *butom = [UIButton buttonWithType:UIButtonTypeCustom];

butom.frame = CGRectMake(10+10+i*10+2*i+(int)(i/2)*5, 100, 10, 20);

butom.backgroundColor = [UIColor blackColor];

[butom setTitle:[savaTimeArry objectAtIndex:i] forState:UIControlStateNormal];

[butom setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

butom.titleLabel.font = [UIFont systemFontOfSize:14.0f];

[self.view addSubview:butom];

}

}


0