如何在目标C中进行比较,以查看某个时间段和日期段是否与plist中已有的时间段和日期段重叠?
这是最常用于预订/预订应用程序,以查看是否已采用该特定时间段等。
答案 0 :(得分: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];
答案 1 :(得分: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];