美文网首页iOS Developer
计算一个小时或几分钟或几秒,几年几日几月之后的时间

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

作者: 晨阳聊电影 | 来源:发表于2017-01-17 18:19 被阅读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"];
        
        
    }
    

    相关文章

      网友评论

        本文标题:计算一个小时或几分钟或几秒,几年几日几月之后的时间

        本文链接:https://www.haomeiwen.com/subject/lnambttx.html