2011-09-14 55 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];