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

 
Previous Post Perl 펄] 세계 시간 시계, 타임존/시차 계산; World-Time Timezone캐논 렌즈를 니콘 디카(DSLR) 마운트에 붙일 수 있나요? 렌즈 호환; Canon Nik...자바스크립트] 세계 시간 구하기, 타임존 설정; JavaScript World-Time T...자바스크립트, 리얼타임 시계 만들기, 1초마다 자동 갱신; JavaScript Real-t...니콘 DSLR] D40X, D40 미러업 촬영, CCD 클리닝 미러락업 기능 있나요? Mu...Perl 펄] 스와치 시계의 인터넷 타임(Swatch Internet Time) 구하기Perl 펄] 루프 건너뛰기, 특정 조건 생략, C의 continue문에 해당하는 예약어 ...Perl 펄] switch문, case문 구현, 스위치 모듈로; default 예약어는?Perl 펄] 무한루프 만들기/탈출, C언어의 break문에 해당하는 예약어; while,...윈도우2000에서 클리어타입 폰트 사용할 수 있나요? 맑은고딕 등; Windows 2000...

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

Tuesday, May 22, 2007

외국 도시의 현재 시각을 구하는 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

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

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