NSDate - Получение Дней месяца (не Дней года)? - PullRequest
1 голос
/ 04 февраля 2012

Используя NSDateComponents, я знаю, как получить дневной компонент, но это дает мне значение от 1 до 365, верно?Мне нужно получить дни 1-30 определенного месяца, как я могу?

Например, у меня NSDate, который может быть 16 мая.Я хочу иметь возможность получить день, поэтому он возвращается 16. Быть 16-м днем ​​этого месяца (не 16-м днем ​​года).

Спасибо.

РЕДАКТИРОВАТЬ:

У меня есть это:

NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [cal components:NSDayCalendarUnit fromDate:[[NSUserDefaults standardUserDefaults] objectForKey:@"dateSaved"]];

Однако comps.day возвращает 1, когда оно должно равняться дате сохранения, скажем, 4.

1 Ответ

1 голос
/ 04 февраля 2012

Значение day, равное NSDateComponents, дает вам день месяца согласно данному календарю:

NSDate *date = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [gregorian components:NSDayCalendarUnit fromDate:date];
NSLog(@"%@ / %d", date, comps.day);

дает

2012-02-04 15:27:36.682 testapp[1533:f803] 2012-02-04 14:27:36 +0000 / 4

хотя 4 февраля будет 35-м днем ​​года.

...