You can convert a string of type HH:mm
into an NSDate
. If endDate
is smaller than startDate
, then add a day to it.
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. I am assuming ARC is used here.