mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Tuesday, May 22, 2007

C언어] 세계 시간 시계, 타임존/시차 계산; World-Time Timezone


외국 도시의 현재 시각을 구하는 C소스입니다. 리얼타임 시계는 아니고, 실행할 때마다 갱신됩니다.

getWorldTime() 함수에 시차를 넣어주고, 결과가 저장될 문자열 버퍼 이름과 크기를 지정해 주면 됩니다.

한국과의 시차가 아니라, 세계표준시와의 시차입니다. 가령 미국 서부 LA는 겨울 빼고는 "태평양 표준시 PDT" 가 적용되는데, PDT는 세계표준시에서 즉 그리니치 천문대가 있는 곳에서 "마이너스 7시간"을 해주어야 합니다. 함수에 -7을 입력하면 됩니다.

다음 소스는 비주얼C 2005에서 만들어진 것이고, 비주얼C 2003 이하에서는 수정이 필요합니다.

외국 도시 시차 계산, 현재 시각 구하기 예제 소스


소스 파일명: wt.cpp
#include <stdio.h>
#include <time.h>

// 한국 시간은 UTC +9 이므로
#define CURRENT_TIMEZONE_OFFSET +9

void getWorldTime(int tzOffset, char* buffer, size_t bufferSize);


int main(void) {
  char buf[80];

  getWorldTime(+9, buf, sizeof(buf));
  printf("KST (한국 표준시)       : %s\n\n", buf);

  getWorldTime(-8, buf, sizeof(buf));
  printf("PST (태평양 표준시)     : %s\n",   buf);
  getWorldTime(-7, buf, sizeof(buf));
  printf("PDT (태평양 표준시 DST) : %s\n\n", buf);

  getWorldTime(-5, buf, sizeof(buf));
  printf("EST (뉴욕 시간)         : %s\n",   buf);
  getWorldTime(-4, buf, sizeof(buf));
  printf("EDT (뉴욕 시간 DST)     : %s\n\n", buf);

  getWorldTime(+1, buf, sizeof(buf));
  printf("CET (파리 시간)         : %s\n",   buf);
  getWorldTime(+2, buf, sizeof(buf));
  printf("CEST (파리 시간 DST)    : %s\n\n", buf);

  getWorldTime(+8, buf, sizeof(buf));
  printf("CST (중국 표준시)       : %s\n\n", buf);

  getWorldTime(0, buf, sizeof(buf));
  printf("UTC (세계 표준시)       : %s\n\n", buf);


  return 0;
}




// 비주얼 C++ 2005 에서 작동
void getWorldTime(int tzOffset, char* buffer, size_t bufferSize) {
  time_t timer;
  struct tm t;

  timer = time(NULL); // 현재 시각을 초 단위로 얻기
  timer -= CURRENT_TIMEZONE_OFFSET * 3600;
  timer += tzOffset * 3600;

  localtime_s(&t, &timer); // 초 단위의 시간을 분리하여 구조체에 넣기


  sprintf_s(buffer, bufferSize, "%04d-%02d-%02d %02d:%02d:%02d",
                                 t.tm_year + 1900,
                                 t.tm_mon + 1,
                                 t.tm_mday,
                                 t.tm_hour,
                                 t.tm_min,
                                 t.tm_sec);

}



실행 결과 화면:
D:\Z>cl wt.cpp && wt.exe
wt.cpp
KST (한국 표준시)       : 2007-05-22 13:53:28

PST (태평양 표준시)     : 2007-05-21 20:53:28
PDT (태평양 표준시 DST) : 2007-05-21 21:53:28

EST (뉴욕 시간)         : 2007-05-21 23:53:28
EDT (뉴욕 시간 DST)     : 2007-05-22 00:53:28

CET (파리 시간)         : 2007-05-22 05:53:28
CEST (파리 시간 DST)    : 2007-05-22 06:53:28

CST (중국 표준시)       : 2007-05-22 12:53:28

UTC (세계 표준시)       : 2007-05-22 04:53:28

D:\Z>




▶▶ C언어] 현재 날짜/시간/년월일,시분초 구하기 함수(오늘 날짜 시간): Current Date, Time




tag: cpp
C언어 | C/C++ (Visual C++)

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top