Я пытаюсь узнать, находится ли дата между другими 2. Хитрость заключается в том, что эти даты просто формируются из дня недели и времени. Чтобы сделать это и пропустить предыдущие проблемы, я взял самые первые будни, это январь 1970 года. Итак, я беру текущий день недели и делаю его с 1970 года, например так:
NSDate * dateNow = [NSDate date];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en"] autorelease]];
[dateFormatter setDateFormat:@"EEEE HH:mm"];
NSString *dateString = [dateFormatter stringFromDate:dateNow];
NSLog(@"La fecha es: %@", dateString);
NSDate *dateComp = [dateFormatter dateFromString:dateString];//Date and time in 1970
Я сравниваю эту дату с фиксированными датами (день недели и время) и смотрю, что она в любом интервале, например:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en"] autorelease]];
[dateFormatter setDateFormat:@"EEEE HH:mm dd-MM-y"];
NSString *dateString = [dateFormatter stringFromDate:self.fechaInicio];
NSLog(@"La date start es: %@", dateString);
dateString = [dateFormatter stringFromDate:self.fechaFin];
NSLog(@"La Date end es: %@", dateString);
dateString = [dateFormatter stringFromDate:testDate];
NSLog(@"DAte inside es: %@", dateString);
NSLog(@"time interval nicio: %d", [testDate timeIntervalSinceDate:self.fechaInicio]);
NSLog(@"time interval fin: %d", [testDate timeIntervalSinceDate:self.fechaFin]);
но это вывод
Palyque[746:307] La date start es: Monday 09:00 05-01-1970
2011-11-23 11:34:47.857 Palyque[746:307] La Date end es: Monday 16:00 05-01-1970
2011-11-23 11:34:47.861 Palyque[746:307] DAte inside es: Wednesday 11:34 07-01-1970
2011-11-23 11:34:47.864 Palyque[746:307] time interval nicio: 0
2011-11-23 11:34:47.867 Palyque[746:307] time interval fin: 0
Есть идеи? Почему всегда 0? Я печатаю даты, прежде чем вычислить timeIntervalSinceDate, и все выглядит хорошо ...