比较NSDate以检查今天是否在两者之间

3
感谢你们的帮助,我已成功将字符串数组转换为NSDates。现在我正在尝试检查今天的日期是否在我的两个日期(即fromDate和toDate)之间。我看到了以下问题,但未能在我的代码中实现它们。如果我能得到任何其他方法或使用用户提供的解决方案的帮助,那就太好了。
链接1:NSDate between two given NSDates
链接2:如何检查NSDate是否发生在另外两个NSDates之间
链接3:如何在NSMutableArray中检查NSDate是否落在另外两个NSDates之间
这是我目前拥有的:
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"yyyy-MM-dd"];
NSTimeZone *tz = [NSTimeZone localTimeZone];
[format setTimeZone:tz];
NSDate *now = [[NSDate alloc] init];
NSString *todaysDate = [format stringFromDate:now];
NSLog(@"todaysDate: %@", todaysDate);

//converting string - date
int size = [appDelegate.ALLevents count];
for (NSUInteger i = 0; i < size; i++) {
    Event *aEvent = [appDelegate.ALLevents objectAtIndex:i];

    //Convert fromDate
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *fromDate = [dateFormatter dateFromString:aEvent.fromDate];
    [dateFormatter setTimeZone:tz];
    NSLog(@"fromDate: %@", fromDate);

    //Convert toDate
    NSDate *toDate = [dateFormatter dateFromString:aEvent.toDate];
    NSLog(@"toDate: %@", toDate);
    [dateFormatter release];
    //Compare if today falls in between
            //codes here
    }

我不确定我知道问题是什么? - Jason Cragun
检查 'todaysDate' 是否在 'fromDate' 和 'toDate' 之间。 - Joe
1个回答

5

请按照以下步骤操作:

NSTimeInterval fromTime = [fromDate timeIntervalSinceReferenceDate];
NSTimeInterval toTime = [toDate timeIntervalSinceReferenceDate];
NSTimeInterval currTime = [[NSDate date] timeIntervalSinceReferenceDate];

NSTimeInterval基本上是double类型,因此您可以比较它。如果currTime大于其中一个日期并小于另一个日期,则该日期位于这两个NSDate之间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接