2012-03-04 5 views
1

단추를 누를 때 레이블에 결과가 나타나도록 지금 사용자 정의 날짜 사이의 간격을 계산하려고합니다.2 개의 NSDate 사이의 간격

차이점은 항상 -4080입니다. 내 방정식에 어떤 문제가 있는지 잘 모르겠습니다. 도움 주셔서 감사합니다.

- (void)LabelChange2:(id)sender{ 
    NSDateFormatter *df3 = [[NSDateFormatter alloc] init]; 
    df3.dateStyle = NSDateFormatterMediumStyle; 
    labelDOB.text = [NSString stringWithFormat:@"%@", 
        [df3 stringFromDate:datepick.date]]; 
} 



    NSDate * df3 = [datePick date]; 
    NSCalendar *gregorian = [[NSCalendar alloc] 
          initWithCalendarIdentifier:NSGregorianCalendar]; 
    NSDateComponents *comps = [gregorian components: NSDayCalendarUnit 
              fromDate: [NSDate date] 
              toDate: df3 
              options: 0]; 
    int days = [comps day]; 
    labelResult.text = [NSString stringWithFormat:@"%i", days]; 
+0

가능한 복제본 [NSDate까지 지금까지의 일 수를 나타내는 방법] (http://stackoverflow.com/questions/7959243/how-to-tell-the-amount-of-days-from- now-until-an-nsdate) –

답변

3

코드가 올바르게 작동합니다. 그러나 nil으로 설정된 datePick 포인터가있는 코드를 실행하면이 코드에서 -4080의 대답을 얻을 수 있습니다. UIDatePicker에 대한 연결을 확인해야합니다.

+0

예. 4080 일 전은 2001 년 1 월 1 일이었습니다. NSDate의 기반은 어느 것입니까? 그래서 무제한 날짜는 4080 일 전에 산출됩니다. 내일이 될 것입니다 -4081 –

+0

물론 예전 친구 인 Reference Date를 어떻게 알지 못했습니까? 그러한 메소드의 별 :'timeIntervalSinceReferenceDate' &'dateWithTimeIntervalSinceReferenceDate :' – NJones

+0

@NJones, 감사 힙은 날짜 선택 도구에서 대문자로 된 P를 나타냅니다 UIDatePicker * datePick; 반대로 속성 (비 원자형, 보유) IBOutlet UIDatePicker * datepick; – MacUser