将当前时间与固定时间05:00:00 PM进行比较

时间:2011-05-04 08:28:48

标签: iphone compare nsdate nsdateformatter

如何将当前时间[NSDate日期]与固定时间05:00:00 PM进行比较。

05:00 PM已经过去了。我只需要BOOL检查。

4 个答案:

答案 0 :(得分:3)

- (BOOL)past5pm
{
    NSCalendar *gregorianCalender = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    NSDateComponents *components = [gregorianCalender components:NSHourCalendarUnit fromDate:[NSDate date]];

    if([components hour] >= 17) // NSDateComponents uses the 24 hours format in which 17 is 5pm
       return YES;

    return NO;
}

答案 1 :(得分:1)

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]  autorelease];
[dateFormatter setDateFormat:@"HH.mm"];
NSDate *currentDate = [NSDate date];
NSString *curDate = [dateFormatter stringFromDate:currentDate];

if ([curDate doubleValue] >= 17.00) 
{
    //set your bool
}

答案 2 :(得分:0)

试试这个

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
        [dateFormatter setDateFormat:@"hh:mm:ss a"];

        NSDate* date = [NSDate date];

        //Get the string date
        NSString* str = [dateFormatter stringFromDate:date];

        NSDate *firstDate = [dateFormatter dateFromString:@"05:00:00 PM"];

        NSDate *secondDate = [dateFormatter dateFromString:str];

        NSTimeInterval timeDifference = [secondDate timeIntervalSinceDate:firstDate];

        NSLog(@"Time Diff - %f",timeDifference);

答案 3 :(得分:0)

您可以使用纯C样式代码并将差异作为整数得出,然后根据差异是正还是负来决定您需要从比较函数返回什么。您也可以通过这种方式比较分钟数。别忘了导入time.h。

    time_t now = time(NULL);
    struct tm oldCTime;
    localtime_r(&now, &oldCTime);
    int hours = oldCTime.tm_hour;
    int diff = 17-hours;
    NSLog(@"Time difference is: %d.", diff);