ios 뽀개기/objective-c

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

인생여희 2019. 4. 3. 09:00
반응형

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

날짜와 시간을 위한 프로그래밍을 위해서는 기본적으로 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];
    

 

 

반응형