Ich möchte die letzten 7 Tage (zB FRI, THU, MI, TUE, MON, SON, SAT, FR) in einem Array vom aktuellen Datum des Systems.Wenn jemand eine Idee hat, bitte helfen.Hilfe wäre geschätzt.Vielen Dank sehr viel.Wie kann ich die letzten 7 Tage in einem Array vom aktuellen Datum erhalten?
Antwort
Ich gehe davon aus, dass dies eine allgemeine Programmierfrage und nicht spezifisch für die iOS-Umgebung ist. Wenn meine Annahme falsch ist, können Sie diese Antwort gerne ignorieren.
Erstellen Sie ein Array mit den Wochentagen. Finden Sie den Index des heutigen Tages, Schleife rückwärts über das Array Kopieren des Inhalts in das Array, das Sie erstellen, wenn Sie auf Null setzen den Index auf 6 setzen (Annahme Null basierte Arrays) und Schleife zurück zum heutigen Tag der Woche.
wie folgt aus (dieser Code ist fiktiv):
string[] days = {"Mon", "Tues" .... "Sun"};
string[] last8Days = new string[8];
int daysIndex, last8DaysIndex;
daysIndex = \\some code to get the index of today's day.
for (last8DaysIndex = 0; last8DaysIndex < 8; last8DaysIndex++)
{
last8Days[last8DaysIndex] = days[daysIndex];
daysIndex--;
if(daysIndex < 0)
daysIndex = 6;
}
Hoffnung, das hilft.
nehme an, wenn ich heute Index habe und es ist 6 dann, wie die Schleife implementiert werden sollte, bitte erarbeiten oder es wäre besser, wenn Sie ein Beispiel geben. –
2 Fragen: 1. möchten Sie die letzten 7 Tage (wie Sie sagen) oder 8 (wie Ihr Beispiel zeigt)? 2. Soll der aktuelle Tag in der ersten Position sein? –
ja mann 8 tage wie ich gesagt habe. Ja, ich möchte den aktuellen Tag auf der ersten Position. –
Meine zwei Cent:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"EEE"];
NSDate *now = [NSDate date];
NSMutableArray *results = [NSMutableArray arrayWithCapacity:8];
for (int i = 0; i < 8; i++)
{
NSDate *date = [NSDate dateWithTimeInterval:-(i * (60 * 60 * 24)) sinceDate:now];
[results addObject:[dateFormatter stringFromDate:date]];
}
NSLog(@"%@", results);
So können Sie Ihre lokalisierten Namen von Wochentagen, und Sie müssen nicht eine Reihe von ihnen selbst bauen.
So wie es ist, gibt es Ihnen genau das, wonach Sie gefragt haben.
Ich denke, das Stackoverflow Post ist am nützlichsten:
How to check what day of the week it is (i.e. Tues, Fri?) and compare two NSDates?
Siehe Antwort von Can Berk Güder da drin, es könnte Ihnen auf helfen, wie Tag der Woche zu bekommen:
Sie können NSDateComponents für diesen Einsatz:
vorzeichenlose Einheiten = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; NSCalendar * gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; NSDateComponents * Komponenten = [gregorianische Komponenten: Einheiten von Datum: Datum]; Dann können Sie auf einzelne Teile des Datums wie folgt zugreifen:
[Komponenten Jahr]; [Komponenten Monat]; [Komponententag]; Oder Sie können ein neues NSDate-Objekt erstellen, indem Sie die Methode dateFromComponents von NSCalendar verwenden, und die beiden NSDate-Objekte vergleichen.
auch unten auf dieses Thema beziehen sich, wie es Ihnen auf helfen kann, wie Sie die Logik von aktuellem Datum letzte bekommen können 7 Tage zu erhalten:
get NSDate today, yesterday, this Week, last Week, this Month, last Month... variables
Siehe Antwort von Ben S:
Angepasst vom Date and Time Programming Guide:
// Right now, you can remove the seconds into the day if you want NSDate *today = [NSDate date]; // All intervals taken from Google NSDate *yesterday = [today dateByAddingTimeInterval: -86400.0]; NSDate *thisWeek = [today dateByAddingTimeInterval: -604800.0]; NSDate *lastWeek = [today dateByAddingTimeInterval: -1209600.0]; // To get the correct number of seconds in each month use NSCalendar NSDate *thisMonth = [today dateByAddingTimeInterval: -2629743.83]; NSDate *lastMonth = [today dateByAddingTimeInterval: -5259487.66];
Wenn Sie die genaue genaue Anzahl der Tage je nach Monat möchten, sollten Sie eine
NSCalendar
verwenden.
Sie können auch auf ebenso schöne Antwort in der gleichen Post beziehen von Hasnat:
könnte ein besserer Weg, dies zu schreiben, aber hier, was kam ich NSCalendar Vorschlag auf Bens und Arbeits von dort nach NSDateComponents
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:[[NSDate alloc] init]];
[components setHour:-[components hour]];
[components setMinute:-[components minute]];
[components setSecond:-[components second]];
NSDate *today = [cal dateByAddingComponents:components toDate:[[NSDate alloc] init] options:0]; //This variable should now be pointing at a date object that is the start of today (midnight);
[components setHour:-24];
[components setMinute:0];
[components setSecond:0];
NSDate *yesterday = [cal dateByAddingComponents:components toDate: today options:0];
components = [cal components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[[NSDate alloc] init]];
[components setDay:([components day] - ([components weekday] - 1))];
NSDate *thisWeek = [cal dateFromComponents:components];
[components setDay:([components day] - 7)];
NSDate *lastWeek = [cal dateFromComponents:components];
[components setDay:([components day] - ([components day] -1))];
NSDate *thisMonth = [cal dateFromComponents:components];
[components setMonth:([components month] - 1)];
NSDate *lastMonth = [cal dateFromComponents:components];
NSLog(@"today=%@",today);
NSLog(@"yesterday=%@",yesterday);
NSLog(@"thisWeek=%@",thisWeek);
NSLog(@"lastWeek=%@",lastWeek);
NSLog(@"thisMonth=%@",thisMonth);
NSLog(@"lastMonth=%@",lastMonth);
Hoffnung, dies hilft Ihnen.
Im Allgemeinen steht die Antwort auf ihre eigenen Vorzüge. Wenn Ihre Antwort nicht akzeptiert wird, wird sie möglicherweise von einer anderen Person aktualisiert. – trudyscousin
@trudyscousin: Ja das ist wahr ..:] –
Haha, du hast eine Menge Antworten, während ich an einigen anderen Dingen arbeitete, aber da ich es größtenteils fertiggestellt habe, hier ist es sowieso. Dieser Ansatz funktioniert auch über Zeitänderungen hinweg und bietet lokalisierte Tagnamen. (Wenn Sie Zeitwerte subtrahieren, wie in vielen anderen Beispielen, treten Probleme auf, wenn sich die Zeit ändert, wenn Sie sich dem Zeitwechsel nähern ....)
// Subtract one day from the current date (this compensates for daylight savings time, etc, etc.)
- (NSDate *)dateBySubtractingOneDayFromDate:(NSDate *)date {
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *minusOneDay = [[NSDateComponents alloc] init];
[minusOneDay setDay:-1];
NSDate *newDate = [cal dateByAddingComponents:minusOneDay
toDate:date
options:NSWrapCalendarComponents];
return newDate;
}
- (NSArray *)lastSevenDays {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE"];
NSDate *date = [NSDate date];
NSMutableArray *weekDays = [[NSMutableArray alloc] initWithCapacity:8];
for (int i = 0; i > -8; i--) {
NSString *weekDay = [formatter stringFromDate:date];
[weekDays addObject:weekDay];
date = [self dateBySubtractingOneDayFromDate:date];
}
return weekDays;
}
// To use it, do this:
NSLog(@"%@", [self lastSevenDays]);
/*
* Results:
* (
* Fri,
* Thu,
* Wed,
* Tue,
* Mon,
* Sun,
* Sat,
* Fri
*)
*
*/
- 1. Wie erhalte ich die letzten 7 Tage Daten vom aktuellen Datum in SQL Server?
- 2. Get Datum der letzten 7 Tage von aktuellen in Android
- 3. Moment JS - Wie subtrahiert man 7 Tage vom aktuellen Datum?
- 4. Iterate durch Datum für die letzten 7 Tage
- 5. wie Datum von der letzten 7 Tage holen
- 6. Sqlite SELECT * für die letzten 7 Tage
- 7. , wie die Tage in aktuellen Datum hinzufügen asp.net mit
- 8. Wie bekomme ich die nächsten 10 Tage vom aktuellen Datum in swift
- 9. Wie kann ich vom heutigen Datum -30 Tage von meiner Datenbank abziehen, die (Datum)
- 10. Berechnung der letzten 7 Tage für jeden Tag in Bereich
- 11. Dataweave - keine Tage vom Datum abziehen
- 12. So subtrahieren Sie 30 Tage vom aktuellen Datum mit SQL Server
- 13. mithilfe von ssdt, wie kann ich einen gefilterten Index für die letzten 7 Tage erstellen?
- 14. Wie erhalten Sie die letzten 30 Tage der Datensätze?
- 15. Wie die letzten 7 Tage Ergebnisse von mysql (mit benutzerdefinierten Datenfeld) auswählen?
- 16. Wie man 7 Tage vom aktuellen Datum in IOS zeigt, wenn heute der letzte Tag des Monats ist
- 17. Wählen Sie die letzten 7 Tage eines jeden Monats aus
- 18. Anzahl der Tage zwischen dem aktuellen Datum und Datum Feld
- 19. C# .Net Erhalten letzten Tag des vorherigen Monats vom aktuellen Datum
- 20. Google Fit (Android) Erhalten Sie die letzten 10 Tage Daten
- 21. SQL-Ausgabe, um nur die letzten 7 Tage Ausgabe bei der Verwendung von konvertieren am Datum zu erhalten
- 22. Wählen Sie Summe top 3 der letzten 7 Tage
- 23. Wie bekomme ich das Datum, welches die Summe eines vorherigen Datums ist, auf 7 Tage des nächsten Datums?
- 24. Jquery, um das Datum der aktuellen Woche vom aktuellen Datum zu erhalten
- 25. aktuelle Datum und Rück zuzüglich 7 Tage
- 26. Wie schiebe ich x Zeichen vom Datum?
- 27. Wie bekomme ich die letzten 30 Tage Rekord in codeigniter
- 28. Python: Wie bekomme ich die Anzahl der Tage vom festen Datum der Vergangenheit bis jetzt
- 29. Wie kann ich Array-Werte vom aktuellen Feld im Dokument erhalten?
- 30. Wie kann ich die lokalisierten Datumseinheiten erhalten?
In Ihrem Beispiel sind es 8 Tage , nicht 7 – Garoal