知道日期(工作日)是否在两个其他日期之间(星期)

时间:2011-11-22 15:45:32

标签: objective-c

我试图知道当周的当天+和小时是否在2个其他工作日+小时之间。

假设现在是“星期二16:26”,并且有一个以“星期二16:00”和“星期二22:00”开头的间隔,所以它应该返回YES。

我从前面的字符串创建日期,这个函数告诉我它是否在间隔中。 此函数是类的一部分,其属性“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);
}

事情是,永远不会返回YES,即使我可以看到日期在间隔中。我害怕我如何把字符串转到日期。我输入“星期二16:00”是哪一年,什么月份,如果我将实际日期格式化为“EEEE HH”,它会保存月份和年份吗?

由于

1 个答案:

答案 0 :(得分:0)

对于您的情况,我建议找到星期一的固定已知日期并应用每个EEEE HH:mm字符串的完整日期。这将在日期内给出正确的值,我认为你的逻辑将开始工作