I have the simplest of tasks that I can't figure out how to do correctly. With the snippet below I can find out the beginning of a month.

```
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *beginning = nil;
[cal rangeOfUnit:NSMonthCalendarUnit startDate:&beginning interval:NULL forDate:self];
return beginning;

```

Now I want to determine the end of that same month (the last second at 23:59:59 would suit my purposes). My first thought was to start at the first day of the next month and subtract a second. But I couldn't break down the date in an NSDateComponent instance to `[dateComponents setMonth:[dateComponents month] + 1]`, because in the case of December that method wouldn't accept 12 + 1 = 13 to get to January, right?

Then how would I get to the last second of a month?