|
DWORD 값을 localtime 함수로 systemtime 구조체형으로 변환했으니
systemtime 구조체의 값을 DWORD형 값으로 변환해주면 되는건가요?
mktime 함수를 쓰니 localtime 반대계산 결과를 주네요
void __fastcall TForm1::Button4Click(TObject *Sender)
{
//70 + 136 + 168 + 94 === 2007년 07월 02일
unsigned char by[4];
by[3]=94;
by[2]=168;
by[1]=136;
by[0]=70;
DWORD dwDate;
dwDate = MAKELONG ( MAKEWORD(by[3], by[2]), MAKEWORD(by[1], by[0]) );
struct tm *systime;
time_t t;
t = dwDate;
systime = localtime(&t);
int y1 = systime->tm_year+1900;
int m1 = systime->tm_mon+1;
int d1 = systime->tm_mday;
// 현재시간을 systemtime으로
struct tm *systime2;
time_t t2;
time(&t2);
systime2 = localtime(&t2);
int y2 = systime2->tm_year+1900;
int m2 = systime2->tm_mon+1;
int d2 = systime2->tm_mday;
// systemtime을 DWORD 형 값으로
DWORD t3=mktime(systime2); // systemtime 구조체의 값을 time_t 형 값으로 변환
ShowMessage(t2);
ShowMessage(t3);
}
//---------------------------------------------------------------------------
근데 저값을 UTC Time 이라고 하나요?
UTC 검색하니까 1970년 1월1일 00:00:00 이후 sec 값이라던데....
초보자 님이 쓰신 글 :
: 답변 감사합니다.
:
: 제가 원하는것은 2007년 7월 2일 월요일을
: 46 88 49 58 [바로 이 숫자]
: 으로 변환하는 방법(계산식, 함수등)을 원하는 것입니다.
: 위에 숫자는 임의의 숫자가 아니고 현재 오늘 을 UTC Time으로 변환한 값입니다.
:
: 기존의 프로그램(소스가 없습니다.)에서 송신한 값입니다.
:
: 46 : 아마 년도 2007년이 되겠지요. [Local Time으로 계산할때 1900을 더해주니 107년 이 되겠네요]
: 88 : 월 [Local Time으로 계산할때 1을 더해주니 6 이 되겠네요] - 오늘이 7월달 이니까
: 49 : 일 [2 가 되겠네요.]
: 58 : 요일 [월요일 이니까 1 이 되겠네요.]
:
: 위에 값들이 어떻게 저렇게 변환되었는지 그 방법을 알고 싶은 겁니다.
:
:
: 시스템 시간이 서울인경우 " 표준시간대 + 9 시간 " 이므로
: 9시간을 빼줘도 안됩니다.- 시간만 9시간 전으로 돌아갈 뿐입니다.
:
: SYSTEMTIME tc;
: GetSystemTime(&tc);도 마찬가지로 제가 원하는 값이 나오지 않습니다.
:
: 제가 질문에 올린것처럼 수신은 됩니다. (Local Time으로 변환은 검색해보면 많이 나옵니다.)
: (반대의 경우는 하루종일 돌아다녀 봐도 구하기가 어렵네요.)
|