BOOLの戻り値と2つの入力(NSDateComponents *)パラメーターを持つ関数があります。私の問題は、2つのNSDateComponents値があり、2つの日付が同じ暦週内にあるかどうかを知りたいことです。私は問題を解決するために最も簡単な解決策を試しました、私の考えは次のとおりでした:
- (BOOL)isFunctionName:(NSDateComponents *)comp1 andParam:(NSDateComponents *)comp2 {
return (([comp1 week] == [comp2 week]) && ([comp1 year] == [comp2 year]));
}
しかし、それは正しくありません。どのように私はそれを解決することができますか?
編集
だから私は日付からdatecomponentsを作る関数を持っています。
-(NSDateComponents *)dateToDateComponents:(NSDate *)date {
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [gregorian components:unitFlags fromDate:date];
[gregorian release];
return dateComponents;
}
そして私はそれをこのように呼びます:
if ([self isFunctionName: [self dateToDateComponents:startDate] and Param:[self dateToDateComponents:currentTripDate]]){
}
テスト中は、すべての日付でYESが返されます(たとえば、2010.07.21〜2010.08.18)。