Я пытаюсь узнать, находится ли текущий день недели + и час между 2 другими днями недели + час.
Скажем, сейчас "вторник 16:26", и есть интервал, который начинается с "вторник 16:00" и "вторник 22:00", поэтому он должен вернуть ДА.
Я создаю даты из предыдущих строк, и эта функция сообщает мне, находится ли он в интервале.
Эта функция является частью класса, чьи атрибуты "fechaInicio" и "fechaFin" являются соответственно датой начала и окончания.
- (BOOL)dateInInterval:(NSDate *)testDate {
// date1 is the instance variable containing the starting date
// date2 is the instance variable containing the ending date
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en"] autorelease]];
[dateFormatter setDateFormat:@"EEEE HH:mm"];
NSString *dateString = [dateFormatter stringFromDate:self.fechaInicio];
NSLog(@"La fecha es: %@", dateString);
dateString = [dateFormatter stringFromDate:self.fechaFin];
NSLog(@"La fecha es: %@", dateString);
NSLog(@"time interval nicio: %d", [testDate timeIntervalSinceDate:self.fechaInicio]);
NSLog(@"time interval fin: %d", [testDate timeIntervalSinceDate:self.fechaFin]);
return ([testDate timeIntervalSinceDate:self.fechaInicio] > 0 &&
[testDate timeIntervalSinceDate:self.fechaFin] < 0);
}
Дело в том, что in никогда не возвращает YES, хотя я вижу дату в интервале. Я боюсь, как я превращаю строку в дату. Я ввожу «вторник 16:00», какой это год, какой месяц, если я отформатирую фактическую дату в «EEEE HH», это сохранит месяц и год?
Спасибо