比较当前时间和固定时间05:00:00 PM

时间:2022-09-03 22:52:16

How will I compare current time [NSDate date] with fixed time 05:00:00 PM.

我如何比较当前时间[NSDate日期]和固定时间00:00 PM。

That 05:00 PM is already passed or not. I just need BOOL check for this.

那个05:00已经过去了。我只需要BOOL检查一下。

4 个解决方案

#1


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;
}

#2


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
}

#3


0  

Try this

试试这个

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);

#4


0  

You can probably use plain C style code and get the difference as an integer and then decide what you need to return from the comparison function depending on wether the difference is positive or negative. You can compare minutes this way as well. Dont forget to import time.h.

您可能可以使用普通的C样式代码,并将差异作为一个整数,然后根据差异是正值还是负值决定需要从比较函数返回什么。你也可以用这种方式来比较时间。别忘了进口时间。

    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);

#1


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;
}

#2


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
}

#3


0  

Try this

试试这个

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);

#4


0  

You can probably use plain C style code and get the difference as an integer and then decide what you need to return from the comparison function depending on wether the difference is positive or negative. You can compare minutes this way as well. Dont forget to import time.h.

您可能可以使用普通的C样式代码,并将差异作为一个整数,然后根据差异是正值还是负值决定需要从比较函数返回什么。你也可以用这种方式来比较时间。别忘了进口时间。

    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);