Ich habe Probleme mit der Berechnung bestimmter Tage relativ zum aktuellen Datum mit NSDate und NSDateComponents. Nehmen wir zum Beispiel an, ich will letzten Freitag. Ich habe versucht, die folgenden:Computing 'letzten Freitag' mit NSDate + NSDateComponents
NSDateComponents *components = [[NSCalendar currentCalendar] components:(NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSWeekdayOrdinalCalendarUnit) fromDate:[NSDate date]];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
[components setWeekday:6]; //Friday
[components setWeek:[components week] - 1]; //Last Week
return [[NSCalendar currentCalendar] dateFromComponents:components];
Aber das gibt nur das aktuelle Datum, als ob es nicht herausfinden können, was ich um.
Das fühlt sich an wie es sollte einfach genug sein, aber ich bekomme es einfach nicht funktioniert. Irgendwelche Zeiger?
Ich landete etwas ähnliches: – Hunter
NSDate * heute = [NSDate date]; \t NSCalendar * Kalender = CURRENT_CALENDAR; \t \t NSDateComponents * weekdayComponents = [Kalenderkomponenten: NSWeekdayCalendarUnit fromDate: today]; \t NSDateComponents * KomponentenToSubtract = [[NSDateComponents alloc] init]; \t [KomponentenToSubtract setDay: 0 - ([WochentagKomponenten Wochentag] - 6)]; \t \t NSDate * fridayDate = [Kalender dateByAddingComponents: KomponentenToSubtract toDate: today Optionen: 0]; \t Rückgabe [fridayDate addTimeInterval: weekAgoInSeconds]; // eine Woche vorher – Hunter