Знайте, если дата (день недели) находится между двумя другими датами (weekedaysº) - PullRequest
0 голосов
/ 22 ноября 2011

Я пытаюсь узнать, находится ли текущий день недели + и час между 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», это сохранит месяц и год?

Спасибо

1 Ответ

0 голосов
/ 22 ноября 2011

В вашем случае я бы посоветовал найти некоторую фиксированную известную дату для понедельника и применить полную дату для каждой строки EEEE HH: mm. Это даст правильные значения внутри даты, и я думаю, что ваша логика начнет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...