카테고리 없음

TIME

도영수 2017. 3. 20. 21:14


time.h 을 Include


time_t time( time_t *timer );

char *ctime( const time_t *timer );



#include <Turboc.h>

 

void main()

{

     time_t t;

 

     time(&t);

     printf("현재 시간은 %s입니다.\n",ctime(&t));;

}


현재 시간은 Sun Sep 05 03:35:27 2004

입니다.


#include <Turboc.h>

 

void main()

{

     char Date[10];

     char Time[10];

 

     _strdate(Date);

     _strtime(Time);

     printf("날짜 : %s, 시간 : %s\n",Date,Time);

}


날짜 : 09/06/04, 시간 : 16:35:42" 이렇다



시간 구조체


struct tm *gmtime(const time_t *timer);

struct tm *localtime(const time_t *timer);

time_t mktime(struct tm *timeptr);



gmtime은 세계 표준시 

Localtime은 지역시간


두 함수 모두 tm 구조체로 반환


struct tm {

        int tm_sec;     /* seconds after the minute - [0,59] */

        int tm_min;     /* minutes after the hour - [0,59] */

        int tm_hour;    /* hours since midnight - [0,23] */

        int tm_mday;    /* day of the month - [1,31] */

        int tm_mon;     /* months since January - [0,11] */

        int tm_year;    /* years since 1900 */

        int tm_wday;    /* days since Sunday - [0,6] */

        int tm_yday;    /* days since January 1 - [0,365] */

        int tm_isdst;   /* daylight savings time flag */

};


 

멤버

설명

tm_sec

(0~59)

tm_min

(0~59)

tm_hour

시간(0~23)

tm_mday

날짜(1~31)

tm_mon

(0~11)

tm_year

1990 이후 경과 년수

tm_wday

요일(0~6). 0 일요일

tm_yday

년중 날짜(0~365)

tm_isdst

일광 절약 시간과의 

 


#include <Turboc.h>

 

void main()

{

     time_t t;

     tm *pt;

 

     time(&t);

     pt=localtime(&t);

     printf("현재 시간 %d년 %d월 %d일 %d시 %d분 %d초입니다.\n",

          pt->tm_year+1900,pt->tm_mon+1,pt->tm_mday,

          pt->tm_hour,pt->tm_min,pt->tm_sec);;

}



char *asctime(const struct tm *timeptr);

size_t strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr);



strtime


시간을 다양한 방식으로 포맷팅하는데 첫 번째 인수로 버퍼, 두 번째 인수로 버퍼의 길이, 세 번째 인수로 포맷팅 방식, 네 번째 인수로 tm 구조체를 준다. 세 번째 인수에 포맷팅 서식을 어떻게 지정하는가에 따라 시간을 다양한 형식의 문자열로 바꿀 수 있다.



#include <Turboc.h>

 

void main()

{

     time_t t;

     char Format[128];

 

     time(&t);

     strftime(Format,128,"%Y %B %d %A %I:%M:%S %p",localtime(&t));

     puts(Format);

}

%Y는 년도, %B는 달의 영문 이름, %d는 날짜이다.


2004 September 06 Monday 04:32:52 PM



clock_t clock( void );    


lock_t 타입은 long형으로 정의되어 있으며 이 함수가 조사한 값을 CLOCKS_PER_SEC으로 나누면 프로그램 실행 후의 경과 초를 알 수 있다. 이 값은 시스템에 따라 다른데 윈도우즈에서는 1000으로 정의되어 있다.



typedef long clock_t;

#define CLOCKS_PER_SEC  1000



#include <Turboc.h>

 

void main()

{

     clock_t t1,t2;

     int count=0;

 

     t1=clock();

     for (;;) {

          printf("기다리십시오. %d\n",count++);

          t2=clock();

          if (t2-t1 > 3*CLOCKS_PER_SEC) {

              break;

          }

     }

     printf("끝났습니다.\n");

}



다음 함수는 두 시간값의 차를 구해준다.

 

double difftime(time_t timer1, time_t timer0);


  : difftime

#include <Turboc.h>

#include <math.h>

 

void main()

{

     int i;

     time_t t1,t2;

    

     time(&t1);

     for (i=0;i<100000;i++) {

          printf("결과 = %f\n",sin(i*3.1416/180) * cos(i*3.1416/180));

     }

     time(&t2);

     printf("총 %.2f초가 걸렸습니다.",difftime(t2,t1));

}



실수형을 리턴하는 것으로 되어 있지만 계산 결과가 초단위로 되어 있기 때문에 정밀한 시간 계산이나 코드의 성능 측정 등에 쓰기에는 무리가 있다.