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

项目截图
最近又有个奇葩的需求,就像图中画框的那个,一进到这个页面,就要展示 当前时间再加一个小时 ,而且展示的方法如图所示,还不是系统直接转的格式,系统中没没有星期,只有周几,这个还需要自己写!话不多说,主要用到了一个方法,它可以直接当前时间加小时,分钟,年月日都可以加!!话不多说,代码走起~~~~
我是方法是现获得一个小时之后的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"];
    
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等。解决办法网上比比皆是,但大多...
    小李龍彪阅读 6,762评论 1 6
  • 在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等。解决办法网上比比皆是,但大...
    真巧了_嘿阅读 2,954评论 0 7
  • 不明白我的前半生中,唐晶在指责菲尔出卖前公司的信息换取新公司的信任时,那么贺涵呢? 他当时也带走了他的最大客户卡曼...
    风雨萧萧起征程阅读 180评论 0 0
  • 距2016年结束还有两个月,我20岁。 在我18岁的时候是高三,那时我有想过20岁的我会在哪个大学?过着怎样的生活...
    九叔不怕冷阅读 486评论 0 1

友情链接更多精彩内容