이번 주 특정 요일 (일요일)의 날짜를 가져와야합니다. 이 날짜를 사용하여 주간 재설정이 발생해야하는지 여부를 결정하고 마지막 재설정 날짜에 대한 계산을 일요일 날짜 이전인지 등으로합니다. 이것은 원칙적으로 여러 번 질문하고 답변했으며 내 솔루션은 지난 6 개월 동안 작동했습니다. 그러나 오늘, 2013 년 12 월 29 일, 작동이 중단되었습니다.
현재 사용되는 기능 :
+ (NSDate *) getSundaysDate{
NSDate *currentDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setFirstWeekday:1];
NSDateComponents *components = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSWeekCalendarUnit) fromDate:currentDate];
NSDateComponents *dt = [[NSDateComponents alloc]init];
[dt setWeek:[components week]];
[dt setWeekday:1];
[dt setMonth:[components month]];
[dt setYear:[components year]];
return [gregorian dateFromComponents:dt];
}
이것은 매력처럼 작동했지만 오늘날에는 내 앱에서 다음과 같이 반환됩니다.
NSLog(@"sundaysDate %@", [Util getSundaysDate]);
sundaysDate 2012-12-29 23:00:00 +0000
NSLog(@"Current date %@", [[NSDate date] debugDescription]);
Current date 2013-12-29 11:37:23 +0000
2012 년을 주목하십시오.
다른 맥락에서 여러 번 답변을 받았음을 알고 있으므로 미리 사과드립니다.하지만 2012 년은 이해가 안됩니다.
편집-필요한 기능을 명확히하기 위해 :
주 일요일 (1 일)에 시작
주말은 토요일 (7 일)에 종료됩니다.
현재 날짜가 주어지면 해당주의 첫날 날짜가 필요합니다.
Example 1: today is 29th December 2013
Expected: Sunday is 29th December 2013
Example 2: today is 4th January 2014
Expected: Sunday was 29th December 2013
Example 2: today is 8th January 2014
Expected: Sunday was 5th January 2014
나는 당신이 사용할 필요가 WeekOfMonth
없다고 생각합니다 Week
.
NSWeekCalendarUnit
본질적으로 1 년의 주이므로 그것과 월을 모두 지정하면 충돌이 발생합니다.
참고 NSWeekCalendarUnit
사용되지 않습니다 :
Deprecation Statement 원하는 내용에 따라 또는 대신
사용하십시오 .weekOfYear
weekOfMonth
NSDate *currentDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setFirstWeekday:1];
NSDateComponents *components = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSWeekOfMonthCalendarUnit) fromDate:currentDate];
[components setWeekday:1];
NSDate *sundatsData = [gregorian dateFromComponents: components];
NSLog(@"sundaysDate: %@", sundatsData);
NSLog 출력 :
sundays 날짜 : 2013-12-29 05:00:00 +0000
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다