2014-09-22 4 views
0

"금요일 오후 3:00"에 날짜를 만들고 싶습니다.주어진 시간에 NSDate 만들기

오늘은 월요일인지 확인합니다 (하루 = 1). 금요일은 6 일입니다. 내가 만들고자하는 시간은 15시입니다.

NSDateComponents *comps = [[NSDateComponents alloc] init]; 
[comps setDay:6]; 
[comps setMonth:currentDate.month]; 
[comps setYear:currentDate.year]; 

NSCalendar *gregorian = [[NSCalendar alloc] 
           initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDate *date = [gregorian dateFromComponents:comps]; 

이것은 몇몇 경우에는 효과가있을 것 같습니다. 그러나 금요일이 오늘과 다른 달 또는 해에 있다면. 이것에 대한 강력한 해결책이 있습니까? 아니면 내가 언급 한 엣지 경우를 수동으로 고려해야합니까?

편집 : 나는 제안 된 날짜의 달 또는 연도를 모른다. 오늘 날짜를 안다. 나는 제안 된 날짜의 날만 알며, 그 날 이후의 다음 날짜라고합니다. 이제부터 다음 번 금요일, 오후 3시.

+1

은 - 월요일,하지 (1) 그리고'setDay' 일 2 평일이 아니라 그 날의 날짜입니다. 따라서 '6'으로 설정하면 금요일이 아닌 6 일입니다. – rmaddy

답변

1

나는 완전히 당신이 필요로하는 것을 이해하지 않도록,하지만 당신은 '문자열 날짜'를 구축하고있는 NSDate로 변환 할 수 있습니다 : 참고로

NSString *dateFormat @"MM/dd/yyyy hh:mm a"; 
NSString *myDateString = @"09/22/2014 16:30 pm"; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:dateFormat]; 
preselectedDate = [df dateFromString: myDateString]; 
+0

내 편집을 참조하십시오. 나는 그것이 2014 년 9 월 22 일이라는 것을 모릅니다. 나는 곧 다음 금요일 인 3시에 알 것입니다. 3 시부 터 금요일은 제가 아는 모든 것에 대해 다음 달 또는 1 년 내에있을 수 있습니다. – soleil

+0

알았습니다. 이 경우 아마도 이것이 필요한 것일까요? http://stackoverflow.com/questions/12829705/programmatically-getting-the-date-next-sunday-at-5pm –