0
今週の月曜日の日付を取得する関数に問題があります。最後の月曜日の日付を計算中にNSDateをオフにする
時にはそれが一日オフだ:
+(NSDate *) lastMondayBeforeDate:(NSDate*)timeStamp {
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps =
[gregorian components:NSWeekdayCalendarUnit fromDate:timeStamp];
NSInteger weekday = [comps weekday];
weekday = weekday==1 ? 6 : weekday-2;
NSTimeInterval secondsSinceMondayMidnight =
(NSUInteger) [timeStamp timeIntervalSince1970] % 60*60*24 +
weekday * 60*60*24;
NSLog(@"MONDAY's DATE-----------%@", [timeStamp dateByAddingTimeInterval:-secondsSinceMondayMidnight]);
return [timeStamp dateByAddingTimeInterval:-secondsSinceMondayMidnight];
}
なぜ 'weekday == 1'ですか?日曜日は1、月曜は2です。 – trojanfoe
日曜日は1日ではなく月曜日に0で開始します – Ayrad