NSDate가 오늘 같은 주에 있는지 확인하고 싶습니다. 따라서 나는 weekOfYear
을 NSDateComponents
에서이 post에 언급 된 것과 같이 생각합니다. 내 예에서주중 주를 사용하여 NSDate가 현재 주에 있는지 확인하십시오.
- (BOOL)dateIsThisWeek:(NSDate *)date
{
NSCalendar *cal = [NSCalendar currentCalendar];
[cal setFirstWeekday: 2]; // Added in second try
NSDate *today = [NSDate date];
NSDateComponents *todaysComponents = [cal components:NSCalendarUnitWeekOfYear fromDate: today];
NSUInteger todaysWeek = [todaysComponents weekOfYear];
NSDateComponents *otherComponents = [cal components:NSCalendarUnitWeekOfYear fromDate: date];
NSUInteger anotherWeek = [otherComponents weekOfYear];
return todaysWeek == anotherWeek; // todaysWeek=7 | anotherWeek=8
}
나는 다음 날짜를했습니다 :
today: 2017-02-15 12:00:00 +0000
date: 2017-02-18 12:00:00 +0000
문제는 todaysWeek
8에 7 anotherWeek
로 설정하고 내가 왜 상상할 수있다.
주일이 일요일부터 시작하기 때문에 캘린더의 첫 번째 요일을 2 (월요일)로 설정했지만 불행히도 성공하지는 못했습니다.
나는 또한 불행하게도 같은 결과이 코드를 시도했습니다
UPDATE :
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *todaysComponents = [gregorian components:NSCalendarUnitWeekOfYear fromDate:[NSDate date]];
NSUInteger todaysWeek = [todaysComponents weekOfYear];
NSDateComponents *otherComponents = [gregorian components:NSCalendarUnitWeekOfYear fromDate: date];
NSUInteger datesWeek = [otherComponents weekOfYear];
return todaysWeek==datesWeek; // todaysWeek=7 | datesWeek=8
두 날짜가 여러 websites 같은 주 번호 7에 있어야는 설명한다.
"주"를 어떻게 정의합니까? 지난 주 일요일부터 시작되는 현재의 "명명 된 주"입니까? 지난 월요일부터? 일주일 연속 7 일입니까? 1 월 1 일이 목요일이면 1 월 6 일 화요일은 여전히 첫 번째 "주"입니까? – DonMag
[NSDate가 현재 주에 있는지 확인하는 방법] (http://stackoverflow.com/questions/38970836/how-to-check-if-nsdate-is-in-current-week) –
@DonMag 내 의견으로는이 주 월요일부터 일요일까지 일주일입니다. http://week-number.net/calendar-with-week-numbers-2017.html – user3191334