2014-11-26 2 views
-4

나는 더 신선하고 아래의 문제를 해결하는 방법을 모른다.일주일에 대한 유효 기간 확인

나는 날짜가 있으며 그 날짜가 주일이면 사용자가 다음으로 갈 수 있도록하고 싶습니다. 7 일 유효성 검사를 원한다는 의미입니다. 날짜가 8 일 이후 인 경우 사용자가 다음으로 갈 수 없도록하십시오. 누군가가이 문제를 해결하면 감사드립니다.

+0

날짜가있는 산술을 수행하는 방법을 알고 싶습니까? 그걸 전혀 조사해 봤니? NSCalendar? NSDateComponents? –

+0

내가 이해 한 경우 선택한 날짜가 현재 주일인지 여부를 확인하고 싶습니까? – arturdev

+0

@arturdev 아니요. 현재 날짜에서 내 날짜 (현재 날짜의 다음 날짜)까지 7 일간 거리가 있는지 확인하고 싶습니다. – chaaruu

답변

1

최대 날짜를 오늘부터 7 일 이후의 날짜로 설정하십시오. 유효성 검사를 추가하려면

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSDateComponents *comps = [NSDateComponents new]; 
comps.day = 7; 
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0]; 
dpDob.maximumDate = sevenDays ; 

당신은 주어진 날짜가 현재 주에있는 경우이

NSDate* dateTodate = [NSDate date];; 

NSTimeInterval distanceBetweenDates = [dateTodate timeIntervalSinceDate:sevenDays]; 
double secondsInAnHour = 3600; 
NSInteger hoursBetweenDates = distanceBetweenDates/secondsInAnHour; 
if(hoursBetweenDates>168) 
{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:GENERAL_Title message: 
            @"Select a date within 7 days from today" delegate:nil cancelButtonTitle: 
            @"OK" otherButtonTitles:nil, nil]; 
    [alert show]; 

} 
+0

'double secondsInAnHour = 3600;'은 * 항상 * ** TRUE가 아닙니다 **. 미안하지만 나는 자신을 언급하는 것을 멈출 수 없었습니다. 이것이 배울 때 도움이 될 것입니다. –

+0

왜 이것이 항상 사실이 아니겠습니까? 그 이유를 말해주십시오 –

+0

리드 초님께 ... –

4

에게이 기능 검사를 참조하십시오 추가 할 수 있습니다.

- (BOOL)isDateInThisWeek:(NSDate *)date 
{ 
    NSDate *today = [NSDate date]; 

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
    NSDateComponents *comps = [calendar components:NSCalendarUnitWeekday fromDate:[NSDate date]]; 
    int weekday = [comps weekday]; 
    int validDays = 7-weekday; 

    comps = [calendar components:NSCalendarUnitDay fromDate:today toDate:date options:0]; 
    int days = [comps day]; 

    BOOL inThisWeek = days <= validDays; 
    return inThisWeek; 
} 

먼저 오늘의 평일 나머지 일이 주를 계산 한 후 현재와 주어진 날짜 사이의 일 수를 확인하면 남은 일 < =입니다.

+0

@ jberlanaL : 안녕하세요, 다른 dateTime 형식 때문에 내 앱이 다운되고 있습니다. 내 날짜 형식을 변경하려고했지만 변경되지 않고 앱이 다운되고 있습니다. 다른 해결책이 있습니까? 오늘 = 2014-11-27 07:22:14 +0000 날짜 = 2014-11-29T20 : 30 : 00 + 00 : 00 – chaaruu