你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> 利用NSCalendar類實現日期的比較

利用NSCalendar類實現日期的比較

編輯:IOS技巧綜合
[摘要]本文是對利用NSCalendar類實現日期的比較的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

在項目中日期的顯示經常會當天的顯示時分,當月的顯示日時和分,以此類推,難免會涉及到日期的比較,下面介紹一下日期比較的兩種方法

比較日期有兩種方法

一種是通過系統的NSCalendar類實現

NSString * date = @"2016-10-12 13:12:12";

//創建日期格式

NSDateFormatter * dateFormat = [[NSDateFormatter alloc]init];

[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];

//字符串轉為日期

NSDate *showDate =[dateFormat dateFromString:date];

//創建日歷類

NSCalendar * calendar = [NSCalendar currentCalendar];

//比較現在的時間和

NSDateComponents * components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:showDate toDate:[NSDate date] options:NSCalendarWrapComponents];

if (components.year) {

NSLog(@"同一年");

}else{

if (components.month) {

NSLog(@"同一月");

}else{

NSLog(@"不同月");

}

}

另一種方法是:

利用時間的實例方法timeIntervalSinceDate:就會得出兩個時間相差的秒數,再計算相差的天數

    NSString * date = @"2016-10-13 9:04:00";
    //創建日期格式
    NSDateFormatter * dateFormat = [[NSDateFormatter alloc]init];
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    [dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
    //字符串轉為日期
    NSDate *showDate =[dateFormat dateFromString:date];

    NSDate * nowDate = [NSDate date];
   NSTimeInterval timeInterval = [nowDate timeIntervalSinceDate:showDate];
    
    NSLog(@"分差=%f",timeInterval/60.00);//分差
    NSLog(@"時差=%f",timeInterval/3600.00);//時差
    NSLog(@"天數差=%f",timeInterval/3600.00/24);//天數差,如果是0說明是當天,否則不是當天
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved