Comment ajouter 1 jour à NSDate en Swift ? Problème avec DateComponents
Bonjour à tous ! Je suis un développeur iOS débutant, j'écris en Swift. J'ai rencontré une tâche apparemment simple : prendre la date actuelle, y ajouter exactement 1 jour et obtenir une nouvelle date. Mais rien ne fonctionne !
Voici mon code :
```swift
let currentDate = NSDate()
let tomorrow = currentDate.addingTimeInterval(60 * 60 * 24) // 24 heures en secondes
print(tomorrow)
```
Le problème est que lors du passage à l'heure d'été/hiver, 24 heures ne correspondent pas toujours à exactement 1 jour. Par exemple, au printemps, une journée peut durer 23 heures, et en automne 25 heures. À cause de cela, j'obtiens une heure incorrecte. De plus, si je veux ajouter 1 mois ou 1 an, cette approche ne convient pas du tout.
Je sais qu'en Objective-C, on utilisait `NSDateComponents` et `NSCalendar`, mais en Swift, je me perds avec la nouvelle API. J'ai essayé d'écrire ceci :
```swift
let calendar = Calendar.current
var components = DateComponents()
components.day = 1
let tomorrow = calendar.date(byAdding: components, to: currentDate as Date)
```
Mais `currentDate as Date` est...
No answers yet.
Connectez-vous pour laisser une réponse