現在日時に特定の秒数加算した時刻を取得するには、以下のようにします。
NSDate* dt = [NSDate dateWithTimeIntervalSinceNow:60.0f];
上記では、現在時刻に60秒加算した日時を取得しています。
パラメータはdouble型なので「60.0f」としています。
dateWithTimeIntervalSinceNowは静的メソッドなので上のような書き方ができますが、NSDateクラスの値は途中変更ができないので、特定日時から計算するには、以下のようにNSDateクラスのインスタンスを複数作成する必要があります。
NSDate* dt1 = [NSDate dateWithTimeIntervalSinceNow:60.0f];
NSDate* dt = [dt1 addTimeInterval:120.0f];
上記は現在時刻に60秒加算した時刻をdt1に格納し、dt1に120秒加算した値をdtに格納しているので、結果、dtには現在時刻より3分進んだ時刻が格納されます。
日時を比較するには、NSDateクラスのcompareメソッドを使います。
NSComparisonResult result = [dt1 compare:dt];
switch(result)
{
case NSOrderedAscending:
// dt is bigger than dt1
break;
case NSOrderedDescending:
// dt is smaller than dt1
break;
case NSOrderedSame:
// dt is same with dt1
break;
}
結果はNSComparisonResultに返ってきます。
また、日時が特定の日時と同じかどうかだけ知りたい場合は、isEqualToDateメソッドを使います。
BOOL result = [dt isEqualToDate:dt1];
if(result == YES)
{
// same
}
else
{
// different
}
isEqualToDateメソッドの結果はBOOL型で返却されます。
BOOL型にはC、C++、C#ではtrue / falseが格納されますが、Objective-Cの場合はYES / NOです。
0 件のコメント:
コメントを投稿