web-dev-qa-db-ja.com

iOSを使用している今月の日数?

NSDateまたはCocoa touchの同様のものを使用して、現在の月の現在の日数を取得するにはどうすればよいですか?

67
Brock Woolf

NSDateおよび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は、現在の日付を表すNSDateオブジェクトです。これは、現在の月の日数を計算するために使用できます。次に、NSCalendarオブジェクトがインスタンス化され、現在の日付のNSDateと組み合わせて使用​​して、rangeOfUnit:inUnit:forDate:関数を使用して現在の月の日数を返すことができます。 。

days.lengthには、現在の月の日数が含まれます。

NSDate および NSCalendar のドキュメントへのリンクを次に示します。詳細情報が必要な場合。

162
Alex Rozanski

迅速な構文:

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

Swift 3の構文は、Erezの答えから少し変わっています。

let cal = Calendar(identifier: .gregorian)
let monthRange = cal.range(of: .day, in: .month, for: Date())!
let daysInMonth = monthRange.count
2
Josh Sherick