Я бы использовал partition
, чтобы разбить массив и просто отсортировать подмассивы:
def size_splitter(array, size)
array.partition { |string| string.size == size }.map(&:sort)
end
Можно использовать 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
объекты.
Можно использовать 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;
}