Mam ciąg daty podobny do tego "2015-03-09" .Jak otrzymać następną datę 10 dni od bieżącej daty? Każda pomoc zostanie doceniona. Thanks with advanceJak uzyskać następne 10 dni od bieżącej daty w trybie szybkim
Odpowiedz
Dla obiektu NSDate istnieje funkcja "dateByAddingTimeInterval()". Dzięki temu możesz utworzyć NSDate ze swojego ciągu daty. Następnie dodać 10 dni = 10 * 24 * 60 * 60, aby uzyskać kolejną wartość 10 dni NSDate
let today : NSDate = ....
let next10days = today.dateByAddingTimeInterval(10*60*60*24); //interval = seconds
//then you convert back to your date string format if you want, by using NSDateFormatter
Aby uniknąć problemu z ratowaniem Daylighttime (@MartinR):
let cal = NSCalendar(calendarIdentifier: NSGregorianCalendar)
let next10Days = cal.dateByAddingUnit(NSCalendarUnit.DayCalendarUnit, value: 10, toDate: today, options: nil)
Nie, dzień to nie to samo co 60 * 60 * 24 sekundy. W regionach z czasem letnim dzień może mieć 23 lub 25 godzin. –
Tak, to rozwiązanie będzie miało "błąd", gdy zmienimy na czas letni lub czas zimowy. Powinniśmy używać NSCalendar. –
zaoszczędziłem mój czas :) – Anton
Można użyć metody dateByAddingTimeInterval() dla tego.
var dateStr = "2015-03-09"
var formatter = NSDateFormatter()
formatter.dateFormat = "YYYY-MM-dd"
var currDate = formatter.dateFromString(dateStr)
for i in 1...10
{
var interval = NSTimeInterval(60 * 60 * 24 * i)
var newDate = currDate?.dateByAddingTimeInterval(interval)
println(newDate)
}
EDIT:
Jak wspomniano przez @Martin R w komentarzach, to będzie lepiej używać dateByAddingComponents() z NSCalendar Klasa:
var calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
var dateComponent = NSDateComponents()
for i in 1...10
{
dateComponent.day = i
var newDate = calendar?.dateByAddingComponents(dateComponent, toDate: currDate!, options:nil)
println(newDate)
}
Mój komentarz do drugiej odpowiedzi dotyczy również tutaj. –
@MartinR: On potrzebuje tylko kolejnych 10 dat, prawda? Nie ma czasu w ciągu dat, który ma. Myślę więc, że nie spowoduje to żadnego problemu w tym przypadku. Popraw mnie, jeśli się mylę –
Właściwy sposób na dodanie dnia to użycie NSCalendar i NSDateComponents. –
Oto jak uzyskać datę 10 dni od teraz, używając wbudowanej metody modyfikacji daty .dateByAddingUnit Jeśli wszystkie 10 dni (daty) są wymagane, można zapętlić je przez część "value: 10" i dodać do tablicy.
var tenDaysfromNow: NSDate {
return NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: 10, toDate: NSDate(), options: [])!
}
print(tenDaysfromNow)
I Swift3:
var tenDaysfromNow: Date {
return (Calendar.current as NSCalendar).date(byAdding: .day, value: 10, to: Date(), options: [])!
}
Kalendarz nie ma członka "dateByAddingUnit" –
Oczywiście. To był Swift2. Teraz dla Swift 3: var tenDaysfromNow: Data { return (Calendar.current as NSCalendar) .date (przez dodanie: .day, wartość: 10, do: Date(), options: [])! } – thinkswift
Jaki byłby właściwy sposób na uzyskanie kolejnych 10 dni od określonej daty? Używanie odpowiedzi Swift 3 w funkcji. Na przykład: 'fun getTenDaysFromDate (date: Date) -> Date {...}' –
Dla Swift 3:
let now = NSDate()
let plusTen = now.dateByAddingDays(10)
NSDate nie ma członka "dateByAddingDays". Aby to zrobić, musisz użyć rozszerzenia. –
Dla czysto Swift 3 rozwiązania:
Calendar.current.date(byAdding: .day, value: 10, to: Date())
- 1. Moment JS - jak odjąć 7 dni od bieżącej daty?
- 2. Uzyskiwanie daty 7 dni temu z bieżącej daty w python
- 3. Pierwsze dni od daty
- 4. Jak wyświetlić dni od Daty
- 5. Próba dodania 3 dni w milisekundach do bieżącej daty
- 6. Wstawianie wartości domyślnej jako bieżącej daty + 30 dni w MySQL
- 7. Jak dodać dni z kolumny do bieżącej daty w DB2?
- 8. Jak odjąć/dodać dni od/do daty?
- 9. PHP - ile dni zostało godzin od daty
- 10. odejmowanie dni od daty w bash
- 11. Dropdown Przez następne 10 lat
- 12. C# 30 dni od dzisiejszej daty
- 13. Jak obliczyć liczbę dni od daty rozpoczęcia według grupy?
- 14. Dodaj dni do daty w ActionScript
- 15. JavaScript - pierwszy dzień tygodnia od bieżącej daty
- 16. Dodaj dni do aktualnej daty
- 17. Odejmowanie 30 dni od bieżącej daty przy użyciu serwera SQL Server
- 18. Powtarzaj dni, począwszy od x daty do daty zakończenia
- 19. MySQL dodać dni do daty
- 20. Jak uzyskać nazwę dnia od wybranej daty?
- 21. Jak wyśrodkować wyskakujący ekran w trybie szybkim
- 22. PHP - Jak liczyć 60 dni od daty dodania
- 23. Odejmowanie dni, miesięcy, lat od daty w kodzie JavaScript
- 24. Jak zmniejszyć jeden miesiąc od bieżącej daty i zapisać w zmiennej daty przy użyciu java?
- 25. Jak napisać skrypt powłoki, w którym dodać dni i miesiące do bieżącej daty
- 26. Julian dni od DateTime
- 27. Dodawanie dni do daty
- 28. Java - Jak uzyskać aktualną datę niezależną od daty systemowej?
- 29. Programowo Utwórz pogrubienie SKLabelNode w trybie szybkim
- 30. Przechowywanie odwołania do tablicy w trybie szybkim
Więc trzeba 10 następnych dni od tej daty? –
Czy przeczytałeś "Przewodnik programowania w czasie i czasie" firmy Apple, prawda? Czego próbowałeś i gdzie utknąłeś? –