計算一個小時或幾分鐘或幾秒,幾年幾日幾月之后的時間

項目截圖
最近又有個奇葩的需求,就像圖中畫框的那個,一進到這個頁面,就要展示 當前時間再加一個小時 ,而且展示的方法如圖所示,還不是系統(tǒng)直接轉(zhuǎn)的格式,系統(tǒng)中沒沒有星期,只有周幾,這個還需要自己寫!話不多說,主要用到了一個方法,它可以直接當前時間加小時,分鐘,年月日都可以加!!話不多說,代碼走起~~~~
我是方法是現(xiàn)獲得一個小時之后的nsdate,在分別轉(zhuǎn)化成年月日 和星期幾和時分,再把他們?nèi)齻€拼接到一起!!!
//一小時之后的時間
-(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];//現(xiàn)在時間向后推一個小時
    
  /*
    [adcomps  setYear:1];//現(xiàn)在時間向后推一個一年
    
    [adcomps  setMonth:1];//現(xiàn)在時間向后推一個月
    
    [adcomps  setDay:1];//現(xiàn)在時間向后推一個天
    
    [adcomps  setMinute:1];//現(xiàn)在時間向后推一個分
    
    [adcomps  setSecond:1];//現(xiàn)在時間向后推一個秒
   
   */
    
    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"];
    
    
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • iOS開發(fā)中,經(jīng)常會遇到各種各樣的時間問題,8小時時差,時間戳,求時間間隔,農(nóng)歷等等。解決辦法網(wǎng)上比比皆是,但大多...
    小李龍彪閱讀 6,415評論 1 6
  • 在iOS開發(fā)中,經(jīng)常會遇到各種各樣的時間問題,8小時時差,時間戳,求時間間隔,農(nóng)歷等等。解決辦法網(wǎng)上比比皆是,但大...
    真巧了_嘿閱讀 2,809評論 0 7
  • 不明白我的前半生中,唐晶在指責菲爾出賣前公司的信息換取新公司的信任時,那么賀涵呢? 他當時也帶走了他的最大客戶卡曼...
    風雨蕭蕭起征程閱讀 163評論 0 0
  • 距2016年結(jié)束還有兩個月,我20歲。 在我18歲的時候是高三,那時我有想過20歲的我會在哪個大學?過著怎樣的生活...
    九叔不怕冷閱讀 462評論 0 1