Как проверить, какой день недели это (т.е. Tues, пятница?) и сравнивают два NSDates?

Я бы использовал partition , чтобы разбить массив и просто отсортировать подмассивы:

def size_splitter(array, size)
  array.partition { |string| string.size == size }.map(&:sort) 
end

11
задан rksprst 24 February 2009 в 21:28
поделиться

2 ответа

Можно использовать NSDateComponents для этого:

unsigned units = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:units fromDate:date];

затем можно получить доступ к отдельным частям даты как это:

[components year];
[components month];
[components day];

Или, можно создать новое использование объекта NSDate NSCalendar dateFromComponents метод, и сравнивает два NSDate объекты.

13
ответ дан 3 December 2019 в 01:16
поделиться

Можно использовать components:fromData: сообщение NSCalendar класс для получения отдельных компонентов даты:

// Sunday = 1, Saturday = 7
int weekday = [[[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:theDate] weekday];

Для сравнения двух дат просто используйте compare: сообщение:

switch([date1 compare:date2])
{
case NSOrderedSame:       /* they are the same date */ break;
case NSOrderedAscending:  /* date1 precedes date2 */ break;
case NSOrderedDescending: /* date2 precedes date1 */ break;
}
30
ответ дан 3 December 2019 в 01:16
поделиться