2009-07-24 6 views
64

かなり簡単な質問ですが、NSDateなどのココアタッチを使って、今月の現在の日数をどのように得ることができるかを把握しようとしています。ありがとう。あなたがNSDateNSCalendarクラスを使用することができますiPhone SDKを使用している当月の日数?

答えて

159

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には、当月の日数が入ります。

詳細は、NSDateNSCalendarのドキュメントへのリンクです。

+0

が見えます。ありがとう:) –

+0

あなたはforDateを意味すると思います:今日 –

+0

はい、申し訳ありませんが、私はXcodeでそれをテストしていたときに 'date'と呼ばれました。 –

4

-[NSCalendar rangeOfUnit:inUnit:forDate:]

9

スウィフト構文:

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

スウィフト3構文がエレズの答えから少し変更されました:これはトリックを行いますよう

let cal = Calendar(identifier: .gregorian) 
let monthRange = cal.range(of: .day, in: .month, for: Date())! 
let daysInMonth = monthRange.count 
関連する問題