Comment puis-je obtenir le nombre actuel de jours dans le mois en cours en utilisant NSDate ou quelque chose de similaire dans Cocoa touch?
Vous pouvez utiliser les classes NSDate
et NSCalendar
:
NSDate *today = [NSDate date]; //Get a date object for today's date
NSCalendar *c = [NSCalendar currentCalendar];
NSRange days = [c rangeOfUnit:NSDayCalendarUnit
inUnit:NSMonthCalendarUnit
forDate:today];
today
est un objet NSDate
représentant la date actuelle; cela peut être utilisé pour calculer le nombre de jours du mois en cours. Un objet NSCalendar
est ensuite instancié, qui peut être utilisé, en conjonction avec le NSDate
pour la date actuelle, pour renvoyer le nombre de jours du mois en cours en utilisant le rangeOfUnit:inUnit:forDate:
une fonction.
days.length
contiendra le nombre de jours du mois en cours.
Voici les liens vers les documents pour NSDate
et NSCalendar
si vous souhaitez plus d'informations.
Syntaxe rapide:
let date = NSDate()
let cal = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!
let days = cal.rangeOfUnit(.CalendarUnitDay, inUnit: .CalendarUnitMonth, forDate: date)
-[NSCalendar rangeOfUnit:inUnit:forDate:]
La syntaxe de Swift 3 a un peu changé par rapport à la réponse d'Erez:
let cal = Calendar(identifier: .gregorian)
let monthRange = cal.range(of: .day, in: .month, for: Date())!
let daysInMonth = monthRange.count