NSDateので、時間の量を伝える方法
-
25-09-2019 - |
質問
私は[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.
}
所属していません StackOverflow