본문 바로가기
ios 뽀개기/objective-c

날짜계산(특정시간 이후 날짜 구하기)

by 인생여희 2019. 4. 3.
반응형

날짜계산(특정시간 이후 날짜 구하기)

날짜와 시간을 위한 프로그래밍을 위해서는 기본적으로 NSDate를 사용한다.

NSDate는 2001년 1월 1일 자정을 기준으로 현재시간(특정)까지의 경과한 시간(초)을 저장하고 있는 객체이다.

두 시점의 과거 , 미래 시간을 비교하는 작업은 가능하나, 구체적인 날짜나 요일을 구하기는 어렵다.

(예 3월1일은 무슨요일인가 ?등)

날짜를 자유자재로 다룰려면 NSCalendar와 NSDateComponents 객체에 대해서 알아야 한다.

NSDateComponents는 몇 월, 몇 일 등 날짜 정보를 구성하는 달력에서 기본 단위들에 대한 정보를 얻는데 사용된다.

실제로 NSDate 객체와 NSDateComponents 객체를 NSCalendar 객체가 연결해준다.

*코드

    int milsec = 3600 * 24 * 30; //30일
    
    // 현재 시간을 저장한다.
    //NSDate *now = [[NSDate alloc] init];                                              // 생성
    NSDate *today = [NSDate date];                                                      //메소드를 이용해서 간단히 생성
    NSLog(@"오늘 날짜 '%@'.", today);
    //오늘 날짜 '2019-04-02 05:31:39 +0000'.

    // 현재 시간에  30일 시간 (3600 * 24 * 30) 더하기
    NSDate *afterDay = [today dateByAddingTimeInterval:milsec];
    NSLog(@"30일 이 후 날짜:  '%@'.", afterDay);
     //30일 이 후 날짜:  '2019-05-02 05:31:39 +0000'.
    
    //날짜 형식 지정
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyyMMdd"];
    NSString *dateString = [formatter stringFromDate:afterDay];
    
    
    NSLog(@"30일 후 날짜 ?  : %@" ,dateString );
    //30일 후 날짜 ?  : 20190502
    
   //문자열 -> 날짜 형식으로
  // NSDate *someDay = [formatter dateFromString:dateString];
    

 

 

반응형

댓글