Objective c 给定一年和一周的数字,你如何得到一周中第一天的日期?

Objective c 给定一年和一周的数字,你如何得到一周中第一天的日期?,objective-c,ios,Objective C,Ios,我需要这个来获取一周的图表数据。这个不适合我。它返回的日期是所选年份的1月1日。有什么想法吗 -(NSDate*) getFirstDateOfTheWeek:(NSString*) weekNr andYear: (NSString*) theYear { int intYear = [theYear intValue]; int intWeek = [weekNr intValue]; NSCalendar *gregorian = [[NS

我需要这个来获取一周的图表数据。这个不适合我。它返回的日期是所选年份的1月1日。有什么想法吗

-(NSDate*) getFirstDateOfTheWeek:(NSString*) weekNr andYear: (NSString*) theYear {
        int intYear = [theYear intValue];
        int intWeek = [weekNr intValue];

        NSCalendar *gregorian = [[NSCalendar alloc]
                                 initWithCalendarIdentifier:NSGregorianCalendar];
        [gregorian setLocale:[NSLocale currentLocale]];

        NSDateComponents * comp = [[NSDateComponents alloc] init];
        [comp setYear:intYear];
        [comp setWeek:intWeek];

        NSDate *dateOfFirstDay = [gregorian dateFromComponents:comp];
        NSDateComponents *dateComponents =
        [gregorian components:NSWeekdayCalendarUnit|NSWeekCalendarUnit|NSDayCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit fromDate:dateOfFirstDay];
        int year = [dateComponents year];
        int month = [dateComponents month];
        int day = [dateComponents day];

        dateOfFirstDay= [gregorian dateFromComponents:dateComponents];
        return dateOfFirstDay;
    }

除了setYear和setWeek之外,还应该在nsdate组件中设置weekday

[comp setWeekday:intWeek];
然后,在获取新组件时,您不需要很多标记,因为您只需要一天(以及调试所需的其他时间):


伟大的。我认为工作日是一周中的一天,就像周一周日。这是一周的第一天还是最后一天?
    [gregorian components:NSDayCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit fromDate:dateOfFirstDay];