我有一个字符串 - 时间,开始,结束:格式“hh:mm”
例如,“21:00”。 我需要比较 - “时间”落在开始和结束之间 如果结束<例如,开始(“21:10”“10:00”)应被视为:从第二天的“开始”到“结束”。我无法将NSSTring像@“23:00”转换为NSDate,然后我需要比较...... :(
感谢您的建议;)
答案 0 :(得分:2)
您可以将HH:mm
类型的字符串转换为NSDate
。如果endDate
小于而不是startDate
,则为其添加一天。
NSString *dateString = @"23:00";
NSString *startString = @"21:00";
NSString *endString = @"10:00";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"HH:mm";
NSDate *date = [formatter dateFromString:dateString];
NSDate *startDate = [formatter dateFromString:startString];
NSDate *endDate = [formatter dateFromString:endString];
if ([endDate compare:startDate] == NSOrderedAscending) {
endDate = [endDate dateByAddingTimeInterval:24*3600];
}
if ([startDate compare:date] == NSOrderedAscending && [date compare:endDate] == NSOrderedAscending) {
NSLog(@"Date %@ is in the interval [%@, %@]", dateString, startString, endString);
} else {
NSLog(@"Date %@ is not in the interval [%@, %@]", dateString, startString, endString);
}
PS。我假设在这里使用ARC。