J'ai besoin de trouver des mois, des années, des joursjournées. Par exemple, 370 jours, je dois convertir en 1 an 0 mois et 5 jours. Les jours peuvent être arrondis au mois le plus proche. Par exemple, si les jours sont inférieurs à 15, cela devrait aller à 0 mois. Si c'est plus de 15 jours, maintenant cela devrait aller à 1 mois
Réponses:
2 pour la réponse № 1En supposant que vous connaissiez la date de début et / ou de fin, et pas seulement la distance qui les sépare, vous pouvez utiliser ceci:
Renvoie la différence entre deux dates.Déclaration
func dateComponents(_components: Set<Calendar.Component>, from start: Date, to end: Date) -> DateComponents
Paramètres
Composants
Quels composants comparer.
début
La date de départ.
fin
La date de fin.
Exemple:
let calendar = Calendar(identifier: <whatever calendar you need>)
let components: DateComponents = calendar.dateComponents([.calendar, .year, .month, .day], from: startDate, to: endDate)
Et puis de DateComponents
vous obtenez votre years
, months
et days
et quoi pas.
1 pour la réponse № 2
func numberOfDaysInCurrentYear() -> Int {
let calendar = Calendar.init(identifier: .gregorian)
let interval = calendar.dateInterval(of: .year, for: Date.init())!
let days = calendar.dateComponents([.day], from: interval.start, to: interval.end).day!
return days
}