iOS で 2 つの日付の差分を計算する方法に関するいくつかのスレッドを読みました。これは、Apple ドキュメントでも提供されていると思われる例です。これを使用して、2 つの日付が同じかどうかを判断します (時間は無視します)。ただし、コンポーネント: メソッドは、2 つの日付が異なっていても、常に年 = 0、月 = 0、日 = 0 を返します。理由がわかりません...ご意見いただければ幸いです...
+ (BOOL)isSameDate:(NSDate*)d1 as:(NSDate*)d2 {
if (d1 == d2) return true;
if (d1 == nil || d2 == nil) return false;
NSCalendar* currCal = [NSCalendar currentCalendar];
// messing with the timezone - can also be removed, no effect whatsoever:
NSTimeZone* tz = [NSTimeZone timeZoneForSecondsFromGMT:0];
[currCal setTimeZone:tz];
NSDateComponents* diffDateComps =
[currCal components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit
fromDate:d1 toDate:d2 options:0];
return ([diffDateComps year] == 0 && [diffDateComps month] == 0 && [diffDateComps day] == 0);
}