Es scheint, dass ich 7 Tage nicht vom aktuellen Datum abziehen kann. So mache ich es:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:-7];
NSDate *sevenDaysAgo = [gregorian dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];
SevenDaysAgo erhält den gleichen Wert wie das aktuelle Datum.
Bitte helfen Sie.
EDIT: In meinem Code habe ich vergessen, die Variable, die das aktuelle Datum erhält, durch die richtige zu ersetzen. Der obige Code ist also funktionsfähig.
objective-c
ios
nsdate
Alex Tau
quelle
quelle
[NSDate dateWithTimeIntervalSinceReferenceDate:[NSDate date].timeIntervalSinceReferenceDate - (7*24*60*60)]
- Obwohl es keine Sommerzeitänderungen behandelt.Antworten:
Verwenden Sie die dateByAddingTimeInterval-Methode:
Ausgabe:
Ich hoffe es hilft
quelle
[now dateByAddingDays:-7]
Code:
Ausgabe:
Und ich stimme JeremyP voll und ganz zu.
BR.
Eugene
quelle
Wenn Sie mindestens iOS 8 oder OS X 10.9 verwenden, gibt es einen noch saubereren Weg:
Oder mit Swift 2:
Und mit Swift 3 und höher wird es noch kompakter:
quelle
Swift 3
quelle
Swift 4.2 - Selbst mutieren (aktualisieren)
Hier ist eine andere Möglichkeit, wie das Originalposter vor einer Woche abgerufen werden kann, wenn er bereits eine Datumsvariable hat (aktualisiert / mutiert sich selbst).
Verwendung
oder
quelle
Die Antwort von dymv funktioniert großartig. Dies können Sie schnell verwenden
Sie können dies mit aufrufen
Hoffe es hilft und danke an dymv
quelle
Swift 4.2 iOS 11.x Babecs Lösung, reine Swift
quelle
Schnelle Operatorerweiterung:
Verwendung
quelle
Swift 3.0+ Version der ursprünglich akzeptierten Antwort
Date (). AddTimeInterval (-7 * 24 * 60 * 60)
Dies verwendet jedoch nur absolute Werte. Die Verwendung von Kalenderantworten ist in den meisten Fällen wahrscheinlich besser geeignet.
quelle
Swift 3:
Eine Modifikation von Dovs Antwort.
Verwendung:
quelle
numberOfDays
optional und dann gewaltsam ausgepackt? Sollte es nicht einfach nicht optional seinInt
?FÜR SWIFT 3.0
Hier ist die Funktion, Sie können Tage, Monat, Tag um eine beliebige Anzahl reduzieren, wie zum Beispiel hier. Ich habe das Jahr des aktuellen Systemdatums um 100 Jahre reduziert. Sie können dies für Tag und Monat tun. Stellen Sie auch einfach den Zähler ein und speichern Sie es in einem Array, können Sie dieses Array überall dann func currentTime ()
quelle