If you ever need to determine how many days are in the current month, here are a few lines of code to get you there.
Calling the rangeOfUnit method in the NSCalendar object, you specify both a small and large calendar units. In this case, a day unit within a month unit. With that information in hand, check the length of the returned range to determine how many days in the month:
// Use today's date NSDate *today = [NSDate date]; // With a calendar object, request the day unit of the month unit NSRange dayRange = [[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:today]; NSLog(@"There are %d days in the current month.", dayRange.length); |
I ran this example on April 4th, 2012, here is the output:
2012-04-04 21:42:33.816 Sandbox[4862:f803] There are 30 days in the current month.
If you know of another way to get the same information, feel free to post a code example.
What about workdays? Any idea on that?
This is in the h file:
Calendar Units
Specify calendrical units such as day and month.
enum {
….
NSMonthCalendarUnit = kCFCalendarUnitMonth,
….
NSWeekdayCalendarUnit = kCFCalendarUnitWeekday,
….
};
typedef NSUInteger NSCalendarUnit;
—
if you swap NSMonthCalendarUnit for NSWeekdayCalendarUnit, maybe that would help.