繁体   English   中英

给定一年零一个星期的数字,您如何获得一周中第一天的日期?

[英]Given a year and a week number, how do you get the date of the first day of the week?

我需要这个来获取每周图表中的数据。 这对我不起作用。 它返回的日期是所选年份的一月初。 有什么想法吗?

-(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外,还应在NSDateComponents中设置setWeekday。

[comp setWeekday:intWeek];

然后,在获取新组件时,您不需要很多标志,因为您实际上只需要一天(其他时间用于调试):

    [gregorian components:NSDayCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit fromDate:dateOfFirstDay];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM