How do I calculate the number of days in this year in Objective C

前端 未结 12 2135
旧巷少年郎
旧巷少年郎 2020-12-06 03:07

How can i calculate the number of days in a year for any calendar, not just gregorian. I have tried this

NSUInteger *days = [[NSCalendar currentCalendar] range

12条回答
  •  鱼传尺愫
    2020-12-06 03:58

    In general you may use number of days between 1st day of the year and 1st day of the next year. Here's the code that illustrates this approach

    - (NSDate *)firstDateOfYear:(NSInteger)year
    {
        NSDateComponents *dc = [[NSDateComponents alloc] init];
        dc.year = year;
        dc.month = 1;
        dc.day = 1;
        return [[NSCalendar currentCalendar] dateFromComponents:dc];
    }
    
    - (NSUInteger)numberOfDaysInYear:(NSInteger)year
    {
        NSDate *firstDateOfYear = [self firstDateOfYear:year];
        NSDate *firstDateOfNextYear = [self firstDateOfYear:year + 1];
        NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit fromDate:firstDateOfYear toDate:firstDateOfNextYear options:0];
        return [components day];
    }
    

提交回复
热议问题