Вы можете просмотреть исходный код для всей категории здесь с комментариями: https://gist.github.com/1590955
#import "NSDate+RotationScheduleFormatter.h"
в каждом файле реализации, в котором вы хотите использовать категорию.Затем используйте следующий вызов метода для получения текущего дня ротации:
[NSDate JL_currentRotationDayWithSchoolYearBeginningOnDateString:@"2011-08-01"];
, где дата находится в формате YYYY-MM-DD
.
. Это вернет перечисление типа RotationDay
,один из kRotationDay[A-G]
.
Для того, чтобы праздничные перерывы и другие выходные выходили из школы на работу, вам нужно зайти в файл .m и отредактировать метод под названием + (int)numberOfWeekdayBreakDaysBetweenSchoolYearBeginningDate:(NSDate *)beginningDate andEndDate:(NSDate *)endDate1
.вы увидите массив с именем weekdayBreakArray
с несколькими значениями (в формате YYYY-MM-DD
).Удалите эти тестовые значения и добавляйте каждый день каждого перерыва, который попадает в будний день. Не добавлять даты, которые являются выходными.
Реализация:
Предполагая, что существует UILabel
с именем rotationLetter
, вы можете сделать следующее:
RotationDay rotationDayInt = [NSDate JL_currentRotationDayWithSchoolYearBeginningOnDateString:@"2011-08-01"];
if (rotationDayInt == kRotationDayA) {
[rotationLetter setText:@"A"];
}
else if (rotationDayInt == kRotationDayB) {
[rotationLetter setText:@"B"];
}
и т. Д.с большим количеством операторов else if
до достижения kRotationDayG
.
Примечания:
Не забудьте заключить ваш вызов этого метода в оператор if, который проверяетЕсли вы находитесь в отпуске или на выходных, иначе результат будет неверным.Также обратите внимание, что я не оптимизировал этот класс для управления памятью, используя ручное сохранение / освобождение, потому что я не был уверен, используете ли вы ARC. Кроме того, вся система выходит из строя, если у вас снежный день или другой неожиданный перерыв, и вы не можете своевременно обновить приложение.Поэтому я настоятельно советую вам загружать массив дат с сервера каждый раз, когда вы открываете приложение, на случай, если вам нужно внести изменения на лету.