0

以前にこの質問を検索したところ、次のことがわかりました。

if (([dateToCompare compare:4HoursEarlier] == NSOrderedAscending) && ([dateToCompare compare:specifiedDate] == NSOrderedDescending))
{
    NSLog(@"dateToCompare between 4HoursEarlier and specifiedDate");
    // do something
}

残念ながら、これはうまくいかないようです (NSLog は印刷されません)。

配列 (日付を含む) を通過する for ループがあります。指定された日付が別の日付から 4 時間以内にあるかどうかを確認する必要があります。私は(疑似コード)を持っています:

specifiedDate = a date I specify;
dateToCompare = current date gathered in for loop;
4HoursEarlier = 4 hours before specifiedDate;

specifiedDate が dateToCompare (配列/for ループから収集された日付) の 4 時間以内にあるかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

1

比較の仕方が間違っていると思います。状態で交換 NSOrderedAscendingNSOrderedDescendingてください。

私のメモリーエイドは

[obj1 compare:obj2] == NSOrderedAscending  : obj1, obj2 is an ascending sequence
[obj1 compare:obj2] == NSOrderedDescending : obj1, obj2 is an descending sequence

したがって、 がdateToCompareよりも遅いかどうかを確認するにはfourHoursEarlier、次を使用する必要があります

if ([dateToCompare compare:fourHoursEarlier] == NSOrderedDescending) ...
于 2013-04-17T21:58:23.027 に答える