Date
est Comparable
& Equatable
(Swift 3)
Cette réponse complète @Ankit Thakur de réponse.
Depuis Swift 3 Date
struct (basé sur le sous-jacent NSDate
de la classe) adopte, à l' Comparable
et Equatable
des protocoles.
-
Comparable
nécessite qu' Date
mettre en œuvre les opérateurs: <
, <=
, >
, >=
.
-
Equatable
nécessite qu' Date
mettre en œuvre l' ==
de l'opérateur.
-
Equatable
permet Date
pour utiliser la valeur par défaut de mise en œuvre de l' !=
de l'opérateur (qui est l'inverse de l' Equatable
==
opérateur de mise en œuvre).
L'exemple de code suivant des exercices de ces opérateurs de comparaison et qui confirme les comparaisons sont remplies avec de l' print
des déclarations.
Fonction de comparaison
import Foundation
func describeComparison(date1: Date, date2: Date) -> String {
var descriptionArray: [String] = []
if date1 < date2 {
descriptionArray.append("date1 < date2")
}
if date1 <= date2 {
descriptionArray.append("date1 <= date2")
}
if date1 > date2 {
descriptionArray.append("date1 > date2")
}
if date1 >= date2 {
descriptionArray.append("date1 >= date2")
}
if date1 == date2 {
descriptionArray.append("date1 == date2")
}
if date1 != date2 {
descriptionArray.append("date1 != date2")
}
return descriptionArray.joined(separator: ", ")
}
Exemple D'Utilisation
let now = Date()
describeComparison(date1: now, date2: now.addingTimeInterval(1))
// date1 < date2, date1 <= date2, date1 != date2
describeComparison(date1: now, date2: now.addingTimeInterval(-1))
// date1 > date2, date1 >= date2, date1 != date2
describeComparison(date1: now, date2: now)
// date1 <= date2, date1 >= date2, date1 == date2