VCL의 DateTimeToTimeStamp 함수 코드는 BASM으로 되어있어서 저를 포함하여 잘모르는 사람은좀...
여튼 TimeStamp의 Date는 1년1월1일을 기준으로 해서 그동안의 날수 입니다.
CBuilder코드로 DateTimeToTimeStampEx 함수를 만들어 봐습니다.
// DateTimeToTimeStampEx 함수를 직접 만들면...
//TDateTime은 12/30/1899 12:00 am 부터 하루에 1씩 증가 한다.
//TTimeStamp는 Date는 01/01/0001 부터 하루에 1씩 증가하고
//TTimeStamp는 Time은 00:00:00.000 부터 경과한 msec 의 Count이다.(오늘 경과한 시간*1000 정도로 생각하면 될듯...)
TTimeStamp __fastcall DateTimeToTimeStampEx(TDateTime dt)
{
TDateTime orgdt=StrToDateTime("0001-01-01 00:00:00");
TTimeStamp ts;
ts.Date = - int(orgdt.Val)+1; //693594+1
ts.Date += int(dt.Val); // 여기까지가 님께서 원하신는 답이 될듯 ..
double dTime=dt.Val - int(dt.Val);
int Hour,Min,Sec, MSec;
Hour = dTime*24;
Min = (dTime - (Hour/24.0)) * 1440;
Sec = (dTime - (Hour/24.0) -(Min/1440.0))* 86400;
MSec = (dTime - (Hour/24.0) -(Min/1440.0) - Sec/86400.0)*86400000;
ts.Time = (Hour*3600+ Min*60+Sec)*1000+MSec;
return ts;
}
그럼...
한울 님이 쓰신 글 :
: VCL을 사용한 코드를 C++ 코드로 바꾸고 있습니다.
:
: 그런데 DateTimeToTimeStamp(Days).Date; 라는 코드를 표준 C++로 바꿀려고 하는데요.
:
: struct tm 이나 time_t 를 이용하라는 것은 이해하겠는데.
:
: 구체적으로 어떻게 해야할지 잘 모르겠네요.
:
: 도움을 부탁드려요..
|