Objective c 了解一个日期(工作日)是否优于其他两个日期(工作日和xBA;)

Objective c 了解一个日期(工作日)是否优于其他两个日期(工作日和xBA;),objective-c,Objective C,我想知道一周中的当前日期+小时是否介于其他两个工作日+小时之间 比如说,现在是“星期二16:26”,有一个以“星期二16:00”和“星期二22:00”开始的间隔,所以它应该返回YES 我从前面的字符串创建日期,这个函数告诉我它是否在间隔内。 此函数是类的一部分,其属性“fechaInicio”和“fechaFin”分别为开始日期和结束日期 - (BOOL)dateInInterval:(NSDate *)testDate { // date1 is the instance variab

我想知道一周中的当前日期+小时是否介于其他两个工作日+小时之间

比如说,现在是“星期二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);
}
-(BOOL)dateInInterval:(NSDate*)testDate{
//date1是包含开始日期的实例变量
//date2是包含结束日期的实例变量
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@“en”]自动删除]];
[dateFormatter setDateFormat:@“EEEE HH:mm”];
NSString*dateString=[dateFormatter stringFromDate:self.fechaInicio];
NSLog(@“La fecha es:%@”,日期字符串);
dateString=[dateFormatter stringFromDate:self.fechaFin];
NSLog(@“La fecha es:%@”,日期字符串);
NSLog(@“时间间隔nicio:%d”,[testDate timeIntervalSinceDate:self.fechaInicio]);
NSLog(@“时间间隔fin:%d”,[testDate timeIntervalSinceDate:self.fechaFin]);
返回([testDate timeIntervalSinceDate:self.fechaInicio]>0&&
[testDate timeIntervalSinceDate:self.fechaFin]<0);
}
问题是in永远不会返回YES,即使我可以看到日期在时间间隔内。我担心我如何把字符串改为日期。我输入“星期二16:00”现在是哪一年,哪一个月,如果我将实际日期格式化为“EEEE HH”,它会保存月份和年份吗


感谢您的案例,我建议您为周一找到一些固定的已知日期,并为每个EEEE HH:mm字符串应用完整日期。这将在日期内给出正确的值,我认为您的逻辑将开始工作

我检查过,固定日期设置为1970年,这是有意义的,所以问题是,如何将当前工作日设置为1970年1月到1970年?我的意思是,只使用真实的完整日期;例如,您将2011年11月7日定为星期一,11月8日定为星期二,11月9日定为星期三等。因此,您有7个真实日期(可能存储在字典中,其中关键是星期一、星期二等)以及您需要的内容-只需为您的三个项目中的每一项复制这些日期并设置正确的时间。在那之后,比较将不会有任何问题。