2014-01-06 2 views
1

문서 나 온라인에서 NSCalendarUnitEra가 얼마나 오래 있는지 알 수 없습니다. 나는 1 년 이상을 가정하고 있거나 길이를 지정할 수 있습니까? 누구든지 도와 줄 수 있습니까?NSCalendarUnitEra의 기간은 얼마나됩니까?

+5

시대는 (예 : 그레고리력) BC/AD입니다. – rmaddy

+0

@rmaddy 오, 감사합니다. 단위 길이가 지정되는 곳이 있습니까? 나는 CFCalendar.h를 체크했는데 값이 어디서 오는지 전혀 모른다. – Milo

답변

4

달력 시대는 달력을 기준으로 정의되는 방식에 따라 다릅니다.

예를 들어 그레고리력은 BCE와 AD를 두 시대로 사용합니다. 따라서 시간을 무한대로 생각한다면, BCE 시대에서 거꾸로 세우거나 AD 시대에서 앞으로 나아갈 수있는 해가 존재할 수 있다고 상상할 수 있습니다. 그래서 각 시대는 한쪽 끝을 가지고 (본질적으로) 무한대의 다른 방향으로 펼쳐지는 타임 라인으로 생각할 수 있습니다.

많은 캘린더는 BCE/AD 시대 시스템을 사용하지만 일부는 한 시대 만 있습니다 (예 : 히브리어 & 이슬람). 그래서 분명히 한 시대 만 존재한다면 시대는 계속 지속됩니다. (상당히 길다)

일본 달력은 프레임 워크에서 가장 특이하다. 거기 시대는 황제의 삶과 관련되어 있습니다. NSCalendar 프레임 워크에는 일본 달력에 대해 236 개의 시대가 나열되어 있습니다. 이 시대의 대부분은 한 예를 들어 "Anna (968-970)"로 매우 짧습니다. 세션 (117) - - 공연 일정 계산 (23m - 논의 일본어 달력 시대) 2013

  • WWDC - 세션 227 - 솔루션 2010

    • WWDC :

      애플은 몇 가지 아주 좋은 WWDC 날짜 작업에 회담을 가지고 공통 날짜 및 시간 과제에 관하여

    NSCalendarUnitEra의 기간은 어떻게됩니까?

    캘린더에 따라 다릅니다. 내가 년

    매우 안전한 가정 이상 있으리라 믿고있어

    - 매우 불운 황제 저장합니다.

    모든 달력에서 사용 된 모든 시대를 보려면 캘린더를 열거하고 longEraSymbols 배열에 액세스하면됩니다.

    참고 : NSLog() 콘솔은 일본어 문자를 올바르게 표시 할 수 없지만 코드가 간단합니다.

    NSArray *calendarIdentifiers = 
        @[NSCalendarIdentifierGregorian, 
         NSCalendarIdentifierBuddhist, 
         NSCalendarIdentifierChinese, 
         NSCalendarIdentifierCoptic, 
         NSCalendarIdentifierEthiopicAmeteMihret, 
         NSCalendarIdentifierEthiopicAmeteAlem, 
         NSCalendarIdentifierHebrew, 
         NSCalendarIdentifierISO8601, 
         NSCalendarIdentifierIndian, 
         NSCalendarIdentifierIslamic, 
         NSCalendarIdentifierIslamicCivil, 
         NSCalendarIdentifierJapanese, 
         NSCalendarIdentifierPersian, 
         NSCalendarIdentifierRepublicOfChina]; 
    for (NSString *calendarIdentifier in calendarIdentifiers) { 
        NSCalendar *cal = [NSCalendar calendarWithIdentifier:calendarIdentifier]; 
        NSLog(@"Name:%@ NumberOfEras:%li Eras:%@",calendarIdentifier,cal.longEraSymbols.count,cal.longEraSymbols); 
    }