質問

私は[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