计算一个小时或几分钟或几秒,几年几日几月之后的时间
2017-01-17 本文已影响231人
晨阳聊电影
项目截图
最近又有个奇葩的需求,就像图中画框的那个,一进到这个页面,就要展示 当前时间再加一个小时 ,而且展示的方法如图所示,还不是系统直接转的格式,系统中没没有星期,只有周几,这个还需要自己写!话不多说,主要用到了一个方法,它可以直接当前时间加小时,分钟,年月日都可以加!!话不多说,代码走起~~~~
我是方法是现获得一个小时之后的nsdate,在分别转化成年月日 和星期几和时分,再把他们三个拼接到一起!!!
//一小时之后的时间
-(void)hourtime{
//得到当前的时间
NSDate * mydate = [NSDate date];
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH-mm"];
NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"---当前的时间的字符串 =%@",currentDateStr);
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *comps = nil;
comps = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitMonth fromDate:mydate];
NSDateComponents *adcomps = [[NSDateComponents alloc] init];
[adcomps setHour:1];//现在时间向后推一个小时
/*
[adcomps setYear:1];//现在时间向后推一个一年
[adcomps setMonth:1];//现在时间向后推一个月
[adcomps setDay:1];//现在时间向后推一个天
[adcomps setMinute:1];//现在时间向后推一个分
[adcomps setSecond:1];//现在时间向后推一个秒
*/
NSDate *newdate = [calendar dateByAddingComponents:adcomps toDate:mydate options:0];
NSString *beforDate = [dateFormatter stringFromDate:newdate];
NSLog(@"---后一个小时 =%@",beforDate);
//获取星期几
NSDateComponents *componets = [[NSCalendar autoupdatingCurrentCalendar] components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
int weekday = [componets weekday];//a就是星期几,1代表星期日,2代表星期一,后面依次
NSArray *weekArray = @[@"星期日",@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六"];
NSString *weekStr = weekArray[weekday-1];
NSLog(@"%@",weekStr);
//获得年月日
NSDate * senddate1=[NSDate date];
NSDateFormatter *dateformatter1=[[NSDateFormatter alloc] init];
[dateformatter1 setDateFormat:@"YYYY-MM-dd"];
NSString * locationString=[dateformatter1 stringFromDate:newdate];
NSLog(@"locationString:%@",locationString);
//获得时分
NSDate * senddate2=[NSDate date];
NSDateFormatter *dateformatter2=[[NSDateFormatter alloc] init];
[dateformatter2 setDateFormat:@"HH:mm"];
NSString * locationString2=[dateformatter2 stringFromDate:newdate];
NSLog(@"locationString:%@",locationString2);
//将三个拼接赋值
[serviceTimebutton1 setTitle:[NSString stringWithFormat:@"%@ %@ %@",locationString,weekStr,locationString2] forState:UIControlStateNormal];
[serviceTimebutton1 setTitleColor:kColorRGB(0x222222) forState:UIControlStateNormal];
NSTimeInterval time = [newdate timeIntervalSinceDate:senddate];
serminutes = ((int)time)/60;
[Timebutton1 setTitleColor:kColorRGB(0x3d3d3d) forState:UIControlStateNormal];
NSString *minutSt = [NSString stringWithFormat:@"%d",serminutes];
[task setObject:minutSt forKey:@"service_time_number"];
}