iOS Developer

计算一个小时或几分钟或几秒,几年几日几月之后的时间

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"];
    
    
}
上一篇下一篇

猜你喜欢

热点阅读