아래는 예제코드로 특정 NSDate 객체를 현재와 얼마나 차이(상대적 시간 차)가 있는지를 계산하는 코드이다.
NSDate *date = ...; // 현재 시간과 비교할 NSDate 객체 NSDate *now = [NSDate date]; NSCalendar *cal = [NSCalendar currentCalendar]; NSUInteger unit = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; NSDateComponents *comp = [cal components:unit fromDate:now toDate:date options:0]; NSInteger day = comp.day; NSInteger hour = comp.hour; NSInteger min = comp.minute; NSInteger sec = comp.second;
day, hour, min, sec 라는 심볼 이름만으로 쉽게 알 수가 있을 것이다.
필요하다면 unit을 확장해서 년이나 월 단위 계산도 가능하다.
사족. 개인적으로 NSDate 그리고 이와 연동되는 NSCalendar 라던가 NSDateComponents 의 존재는 Python을 좋아하는 사람으로써 참 불편하게 느껴진다. Python의 datetime.timedelta 같은 훌륭한 모델과 비교하자면 말이다.
0 comments:
댓글 쓰기