iOS日期的比較

來源:互聯網
上載者:User

iOS日期的比較

  1.日期可以進行比較以確定大小或相等,也可以確定兩個日期之間的時間間隔。兩個日期的間隔時間差可以使用-timeIntervalSinceDate:方法來計算   

  1. NSDate * now = [NSDate date];
  2.   NSDate * anHourAgo = [now dateByAddingTimeInterval:-60*60];
  3.   NSTimeInterVal timeBetween = [now timeIntervalSinceDate:anHourAgo];
  4.   NSLog(@”%f”,timeBetween);
      2.日期比較也可以使用-timeIntervalSinceNow方法擷取和當前的時間間隔
      
    1. NSDate * anHourago = [NSDate dateWithTimeIntervalSinceNow;-60*60];
    2.   NSTimeInterval interval = [anHourAgo timeIntervalSinceNow];
    3.   NSLog(@”%f”,interval);

      //建立日期格式化對象 NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"]; //建立了兩個日期對象 NSDate *date1=[dateFormatter dateFromString:@"2010-3-3 11:00"]; NSDate *date2=[dateFormatter dateFromString:@"2010-3-4 12:00"]; //NSDate *date=[NSDate date]; //NSString *curdate=[dateFormatter stringFromDate:date]; //取兩個日期對象的時間間隔: //這裡的NSTimeInterval 並不是對象,是基本型,其實是double類型,是由c定義的:typedef double NSTimeInterval; NSTimeIntervaltime=[date2 timeIntervalSinceDate:date1]; int days=((int)time)/(3600*24); int hours=((int)time)%(3600*24)/3600; NSString *dateContent=[[NSString alloc] initWithFormat:@"%i天%i小時",days,hours];

        3.NSDate還提供了-laterDate、-earlierDate和compare方法來比較日期
        
      1. NSDate * now = [NSDate date];
      2.   NSDate * anHourAgo = [now dateByAddingTimeInterval:-60*60];
      3.   NSDate *result1 = [now laterDate:anHourAgo];
      4.   NSDate * result2 = [now earlierDate:anHourAgo];
      5.   NSComparisonResult result3 = [now compare:anHourAgo];

        比較日期大小是任何程式設計語言都會經常遇到的問題,再iOS編程中,通常用NSDate對象來儲存一個時間(包括日期和時間、時區),而且 NSDate類提供了compare方法來進行時間的比較,但有時不想那麼精確的知道兩個日期的大小(預設會比較到秒),可以用下面的實現方法:

        +(int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay{    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    [dateFormatter setDateFormat:@"dd-MM-yyyy"];    NSString *oneDayStr = [dateFormatter stringFromDate:oneDay];    NSString *anotherDayStr = [dateFormatter stringFromDate:anotherDay];    NSDate *dateA = [dateFormatter dateFromString:oneDayStr];    NSDate *dateB = [dateFormatter dateFromString:anotherDayStr];    NSComparisonResult result = [dateA compare:dateB];    NSLog(@"date1 : %@, date2 : %@", oneDay, anotherDay);    if (result == NSOrderedDescending) {        //NSLog(@"Date1  is in the future");        return 1;    }    else if (result == NSOrderedAscending){        //NSLog(@"Date1 is in the past");        return -1;    }    //NSLog(@"Both dates are the same");    return 0;             }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.