2013-02-27 2 views
1

Я играл с NSDates и мне нужно сравнить, если две даты на той же неделе. До сих пор мне удалось использовать [NSDateComponents week], чтобы проверить, НЕ НАХОДЯТСЯ в течение недели друг от друга. Однако мне нужно иметь возможность проверить, если они находятся на той же неделе месяца, например. week 1 {monday-sunday}. week 2 {monday-sunday}.Использование NSDateComponents/NSCalendar для расшифровки недель в месяц

Возможно ли это в iOS?

+0

Что, если даты на той же неделе, но в иной месяц, например, «Четверг 28 февраля» и «Пятница 1 марта»? Это считается «в течение недели»? –

+0

Как насчет «Понедельник 12 декабря 2012 года» и «Вторник, 1 января 2013 года»? Означает ли это, что в течение недели? –

+0

Я нашел хороший способ сделать это - [[cal components: NSWeekCalendarUnit fromDate: myDate] week]; – Da49

ответ

1

Да.

Хотя это звучит подозрительно, как будто это может быть домашнее задание. Я думаю, что это то, что вы хотите, но если вы хотите, чтобы он был частью третьей недели (или что-то еще), и неважно, в каком месяце он находится; вы можете взять часть месяца.

// Assume date1 and date2 are NSDates 

NSCalendar *cal = [NSCalendar currentCalendar]; 

NSDateComponents *date1Components = [cal components:(NSMonthCalendarUnit | NSWeekCalendarUnit) fromDate:date1]; 
NSDateComponents *date2Components = [cal components:(NSMonthCalendarUnit | NSWeekCalendarUnit) fromDate:date2]; 

if (date1Components.week == date2Components.week && 
    date1Components.month == date2Components.month) { 
    // same week of same month 
} else { 
    // either different week or different month (or both) 
} 

Для получения дополнительной информации об этом, проверьте компании Apple Date and Time Programming Guide

Смежные вопросы