Сравните текущее время с фиксированным временем 05:00:00 PM - PullRequest
3 голосов
/ 04 мая 2011

Как я буду сравнивать текущее время [дата NSDate] с фиксированным временем 05:00:00 PM.

Это 17:00 PM уже пройдено или нет.Мне просто нужна проверка BOOL для этого.

Ответы [ 4 ]

3 голосов
/ 04 мая 2011
- (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 голос
/ 04 мая 2011
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
}
0 голосов
/ 04 мая 2011

Вы, вероятно, можете использовать простой код в стиле 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);
0 голосов
/ 04 мая 2011

Попробуйте это

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