2013-09-15 5 views
1

iOS предоставляет набор календарей, которые могут использоваться в приложении. Вот список их идентификаторов:Добавление новых календарей в iOS

NSString * const NSGregorianCalendar; 
NSString * const NSBuddhistCalendar; 
NSString * const NSChineseCalendar; 
NSString * const NSHebrewCalendar; 
NSString * const NSIslamicCalendar; 
NSString * const NSIslamicCivilCalendar; 
NSString * const NSJapaneseCalendar; 
NSString * const NSRepublicOfChinaCalendar; 
NSString * const NSPersianCalendar; 
NSString * const NSIndianCalendar; 
NSString * const NSISO8601Calendar; 

Что делать, если я хочу добавить больше календарей. Скажем, французский республиканский (http://en.m.wikipedia.org/wiki/French_Republican_Calendar)?

Я прекрасно понимаю, что я могу использовать формулу для преобразования даты, но есть способ, чтобы создать свой собственный календарь, чтобы использовать так же, как стандартной, например:

NSDateFormatter *formatter = [NSDateFormatter new]; 
formatter.calendar = [[NSCalendar alloc] initWithCalendarIdentifier:@"french_republican"]]; 

ответ

1

Как уже упоминалось, показывая NSLocale Calendar Keys в iOS есть определенное количество календарей. Вы не можете создать свой собственный, используя свой собственный идентификатор.

Что вы можете сделать, так это создать календарный декоратор на основе стандартного календаря и выполнить все вычисления с использованием методов NSCalendar.

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