Fondamentalement, comme le dit le titre. Je me demande comment ajouter 1 jour à un NSDate
.
Donc si c'était le cas:
21st February 2011
Cela deviendrait:
22nd February 2011
Ou si c'était:
31st December 2011
Cela deviendrait:
1st January 2012.
objective-c
date
cocoa-touch
nsdate
Andrew
la source
la source
Réponses:
Swift 5.0:
Objectif c :
Cela devrait être explicite.
la source
dateByAddingComponents
appel àNSCalendarOptions(rawValue: 0)
Depuis iOS 8, vous pouvez utiliser
NSCalendar.dateByAddingUnit
Exemple dans Swift 1.x:
Swift 2.0:
Swift 3.0:
la source
date.add(.days, 1)
? * va et construit une extensionextension Date { func adding(_ component: Calendar.Component, _ value: Int) -> Date? { return Calendar.current.date(byAdding: component, value: value, to: self) } }
usageDate().adding(.day, 1) // "Jun 6, 2019 at 5:35 PM"
Mis à jour pour Swift 5
Objectif c
la source
iOS 8+, OSX 10.9+, Objective-C
la source
Une implémentation de Swift 3+ fonctionnelle basée sur la réponse de Highmaintenance et le commentaire de Vikingosegundo . Cette extension de date propose également des options supplémentaires pour changer l'année, le mois et l'heure:
L'utilisation pour seulement ajouter un jour comme demandé par OP serait alors:
la source
let foo = Date().add([.calendar: 1, .yearForWeekOfYear: 3]
si j'ajoutais la solution alternative à ma réponse . Merci pour votre suggestion, @vikingosegundo!Swift 4.0 (identique à Swift 3.0 dans cette merveilleuse réponse, pour que ce soit clair pour les débutants comme moi)
la source
Utilisez la fonction ci-dessous et utilisez le paramètre jours pour obtenir la date daysAhead / daysBehind juste passer le paramètre comme positif pour la date future ou négatif pour les dates précédentes:
la source
En rapide
la source
C'est du travail!
la source
L'implémentation très simple de Swift 3.0 serait:
la source
la source
Swift 4.0
Usage
Remarque: Si vous ne savez pas pourquoi les lignes de code se terminent par un point d'exclamation, recherchez "Swift Optionals" sur Google.
la source
Vous pouvez utiliser la méthode de NSDate
- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds
oùseconds
serait60 * 60 * 24 = 86400
la source
Dans Swift 2.1.1 et xcode 7.1 OSX 10.10.5, vous pouvez ajouter n'importe quel nombre de jours en avant et en arrière à l'aide de la fonction
appel de fonction pour incrémenter la date actuelle de 9 jours
appel de fonction pour décrémenter la date actuelle de 80 jours
la source
Voici une méthode à usage général qui vous permet d'ajouter / de soustraire tout type d'unité (année / mois / jour / heure / seconde, etc.) à la date spécifiée.
Utilisation de Swift 2.2
la source
Ok - je pensais que ça allait marcher pour moi. Cependant, si vous l'utilisez pour ajouter une journée au 31 mars 2013, il renverra une date qui n'a que 23 heures ajoutées. Il pourrait bien avoir le 24, mais l'utilisation dans les calculs n'a ajouté que 23 heures.
De même, si vous passez au 28 octobre 2013, le code ajoute 25 heures, ce qui donne une heure de date du 2013-10-28 01:00:00.
Afin d'ajouter un jour, je faisais la chose en haut, en ajoutant:
Compliqué, principalement en raison de l'heure d'été.
la source
60*60*24 + 1
raison de secondes intercalaires. les dates doivent couvrir tout cela, et c'est pourquoi la gestion des dattes du cacao est vraiment géniale!la source
Dans swift, vous pouvez créer une extension pour ajouter une méthode dans NSDate
vous pouvez l'utiliser comme
la source
Mise à jour pour Swift 4:
la source
pour swift 2.2:
J'espère que cela aide quelqu'un!
la source
Swift 4, si tout ce dont vous avez vraiment besoin est un quart de 24 heures (60 * 60 * 24 secondes) et non "1 jour calendaire"
Futur:
let dayAhead = Date(timeIntervalSinceNow: TimeInterval(86400.0))
Passé:
let dayAgo = Date(timeIntervalSinceNow: TimeInterval(-86400.0))
la source
mise à jour pour swift 5
la source
la source
J'ai eu le même problème; utiliser une extension pour NSDate:
la source
Swift 2.0
la source
Dans swift 4 ou swift 5, vous pouvez utiliser comme ci-dessous:
production:
la source
Extension de chaîne: Convert String_Date> Date
Extension de date: Convertir la date> Chaîne
Extension de date: Get +/- Date
Usage:
référence: à partir de plusieurs questions
Comment ajouter 1 jour à une NSDate?
fonction mathématique pour convertir un positif positif en négatif et un négatif en positif?
Conversion de NSString en NSDate (et inversement)
la source
Utilisez le code suivant:
Comme
est désormais obsolète.
la source