計算兩個時間之間的差值

最近有一個功能,需要計算同一天內(nèi)兩個時間之間的差值,開始打算將NSDate先轉(zhuǎn)換成NSString,然后轉(zhuǎn)后成int類型數(shù)據(jù)進(jìn)行換算對比。
但是這種方法太過繁瑣,時間之間的對比要逐一對比小時分鐘,然后還要將結(jié)果進(jìn)行轉(zhuǎn)換,實在是麻煩。這里我使用了NSCalendar類。
下面來看一下具體的實現(xiàn):
首先先拿到當(dāng)前時間,并轉(zhuǎn)換成字符串:

//獲取當(dāng)前時間
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];
NSString *dateStr = [formatter stringFromDate:date];

同樣也將要比較的時間(我們這里將其稱為開始時間)轉(zhuǎn)換成相同格式的字符串:

  //開始時間
  NSString *beginTime = dict[@"BeginTime"];

下面進(jìn)入正題,比較兩個時間字符串:

//計算當(dāng)前時間和開始時間的差值
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth
| NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
//對比時間差
NSDateComponents *component = [calendar components:unit fromDate:beginDate toDate:nowDate options:0];
NSLog(@"年差額 = %ld, 月差額 = %ld, 日差額 = %ld, 小時差額 = %ld, 分鐘差額 = %ld, 秒差額 = %ld",(long)component.year,component.month,component.day,component.hour,component.minute,component.second);

這樣我們就分別得到了年、月、日、時、分、秒的差額,如果你想要得到一個時間相差總額,比如說一天內(nèi)兩個時間點之間的總差額,你只需要進(jìn)行簡單的計算:component.hour *60 + component.minute即可得到兩個時間總共相差的分鐘數(shù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,665評論 0 4
  • SwiftDate概況 從Swift發(fā)布起,我們就沒有放棄使用Swift。 當(dāng)然,我們希望在項目能夠輕松自如地管理...
    Mee_Leo閱讀 10,332評論 1 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 作者:gabriel theodoropoulos,原文鏈接,原文日期:2015-10-18譯者:ray16897...
    梁杰_numbbbbb閱讀 3,986評論 0 11
  • 此時此刻,辦公室里只有我一個人,剛把手頭的急事處理完,此刻電話也安靜了,真希望就這樣一直安靜下去。自從加入文學(xué)瘋?cè)?..
    蕙印閱讀 323評論 0 0

友情鏈接更多精彩內(nèi)容