2011-09-14 86 views
2

如何在目標C中比較某個時間段和日期段是否與已經在plist中的另一個段重疊?比較時間和日期目標C

這是在預訂/預訂應用程序最常用的,看看是否特定時隙已佔用等

回答

2

假設你有存儲爲一個NSDate的日期,只是用這樣的:

[myDate timeIntervalSinceNow]; 

返回一個NSTimeInterval,它只是一個表示以秒爲單位的時間間隔的浮點數。如果是負值,則意味着您正在比較的時間是以前的時間。

如果您的日期作爲NSString存儲在plist中,您必須首先將其轉換爲NSDate,然後使用NSDateFormatter作爲該日期。

NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //Change this to your date format 
NSDate * date = [formatter dateFromString:yourString]; 
[formatter release]; 
6

試試這個比較..

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
      [dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss aa"]; 


NSDate *dateOne=[dateFormat dateFromString:@"01/09/2011 11:12:10 AM" ]; 
     NSDate *dateTwo = [NSDate date]; 

     switch ([dateOne compare:dateTwo]){ 
      case NSOrderedAscending: 
       //NSLog(@"NSOrderedAscending"); 
       break; 
      case NSOrderedSame: 
       //NSLog(@"NSOrderedSame"); 
      { 
break; 
      case NSOrderedDescending: 
       //NSLog(@"NSOrderedDescending"); 
       break; 
     } 

[dateFormat release];