C언어/C언어 예제

[C언어 소스] mktime 함수 예제 소스 코드

언제나휴일 2016. 5. 6. 08:17
반응형

[C언어 소스] mktime 함수 예제 소스 코드


//C언어 표준 라이브러리 함수 가이드

//time_t mktime(struct tm *timeptr); 일시로 초단위 시간을 구하는 함수

//오늘까지 살아온 일, , , 초를 계산

 

#include <stdio.h>

#include <time.h>

 

#define SECONDS_PER_DAY    (24*60*60)

#define SECONDS_PER_HOUR  (60*60)

#define SECONDS_PER_MIN     (60)

 

 

int main(void)

{

 

    struct tm now_date, birth_date = { 0 };

    time_t birth_time, now_time;

    long long gap_time;

    int year, month, day, hour, min, second;

    char buf[100];

 

    //생년 월 일 입력

    printf("생년 월 일 : ");

    scanf_s("%d %d %d", &year, &month, &day);

 

    birth_date.tm_year = year - 1900;//tm_year 1900년을 기준

    birth_date.tm_mon = month - 1; //tm_mon 0 1

    birth_date.tm_mday = day;

 

    time(&now_time);//현재 초 단위 시간을 구한다.

    birth_time = mktime(&birth_date);//분할 시각을 초 단위 시간으로 변환

    gap_time = now_time - birth_time; //시간 차이를 구함()

 

    //살아온 일 계산

    day = (int)gap_time / SECONDS_PER_DAY;

    gap_time = gap_time%SECONDS_PER_DAY;

    //살아온 시 계산

    hour = (int)gap_time / SECONDS_PER_HOUR;

    gap_time = gap_time%SECONDS_PER_HOUR;

    //살아온 분 계산

    min = (int)gap_time / SECONDS_PER_MIN;

    //살아온 초 계산

    second = (int)gap_time%SECONDS_PER_MIN;

 

    localtime_s(&now_date, &now_time);//초 단위 값을 지역 시각(DateTime)을 구한다.     

    asctime_s(buf, sizeof(buf), &now_date);//현재 시각을 버퍼에 출력

    printf("오늘은 %s", buf);//현재 시각 출력

    //살아온 일, , , 초 출력

    printf("오늘까지 살아온 시간은 %d %d %d %d\n", day, hour, min, second);

 

    return 0;

}

 

출력

생년 월 일 : 2002 1 1 (입력)

오늘은 Sat Oct 31 01:38:28 2015

오늘까지 살아온 시간은 505113828

프로그래밍 언어 및 기술 교육 무료 사이트는 언제나 휴일 티스토리

반응형