Я хочу получить первый день текущей недели с конкретным языком для всех. Например, в США неделя начинается с воскресенья и других стран в понедельник.Получить первый день недели и последний день в объекте-c
Я хочу начать в понедельник для всех, это потому, что я хочу использовать это для SQLQuery.
У меня есть это:
NSDate *weekDay = [NSDate date]; //any date in the week in which to calculate the first or last weekday
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:weekDay];
[components setDay:([components day]-([components weekday]-[[NSCalendar currentCalendar] firstWeekday]))];
NSDate *firstWeekday = [gregorian dateFromComponents:components];
NSDate *lastWeekday = [[gregorian dateFromComponents:components] dateByAddingTimeInterval:7 * 24 * 3600 - 1];
NSLog(@"first - %@ \nlast - %@", firstWeekday, lastWeekday);
Который работает хорошо, если в вашей местности неделя начинается с понедельника, но если начинается с воскресенья не возвращает то, что я хочу.
Итак, представьте, сегодня 11 2015 октябрь С воскресенья локали вернется в первый день недели 11, последний день, 17 С понедельника локали вернется первый день недели 5, последний день 11
Я хочу вернуть второй вариант везде, где выполняется мое приложение.
Спасибо. С уважением.
Как английского человек, моя неделя начинается в понедельник ... – Wain
Обновлено, влияет на США, но проблема в том, то же самое ... – Miguel
Вы пытались установить локаль календаря на systemLocale или установить firstWeekday? – Willeke