web-dev-qa-db-fra.com

Nombre de jours dans le mois en cours avec iOS?

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?

67
Brock Woolf

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.

162
Alex Rozanski

Syntaxe rapide:

let date = NSDate()
let cal = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)!
let days = cal.rangeOfUnit(.CalendarUnitDay, inUnit: .CalendarUnitMonth, forDate: date)
11
Erez Haim

-[NSCalendar rangeOfUnit:inUnit:forDate:]

5
Rob Napier

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
2
Josh Sherick