我开始与一个NSDate [NSDate的日期];我要检查它是否真实,因为这NSDate的变量已经5个小时。我会如何做呢?我在我的代码是

requestTime = [[NSDate alloc] init];
requestTime = [NSDate date];

在我要检查它是否一直以来requestTime 12小时以后的方法。请帮忙!由于事先。

有帮助吗?

解决方案

int seconds = -(int)[requestTime timeIntervalSinceNow];
int hours = seconds/3600;

基本上我在这里问了多少秒过去了,因为我们第一次得到了我们的requestTime。然后用一些数学魔术,由秒小时数除以又名,我们可以得到的已通过的小时数。

小心的词。请确保您设置requesttime时,使用“保留”的关键字。 Xcode的喜欢忘记的NSDate对象设置为无它。

    requestTime = [[NSDate date] retain];

其他提示

NSInteger hours = [[[NSCalendar currentCalendar] components:NSHourCalendarUnit fromDate:requestTime toDate:[NSDate date] options:0] hour];
if(hours >= 5)
    // hooray!

尝试使用该方法,或东西沿着这些路线。

- (int)hoursSinceDate :(NSDate *)date
{
    #define NUBMER_OF_SECONDS_IN_ONE_HOUR 3600

    NSDate *currentTime = [NSDate date];
    double secondsSinceDate = [currentTime timeIntervalSinceDate:date];
    return (int)secondsSinceDate / NUBMER_OF_SECONDS_IN_ONE_HOUR;
}

可以然后执行所述整数小时响应一个简单的检查。

int hours = [dateUtilityClass hoursSinceDate:dateInQuestion];
if(hours < 5){
    # It has not yet been 5 hours.
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top