C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[58213] Re:DateTimeToTimeStamp(Days).Date; 라는 코드를 C++로 바꿀려고 하는데요..
장성호 [nasilso] 1124 읽음    2009-08-26 21:37
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 를 이용하라는 것은 이해하겠는데.
:
: 구체적으로 어떻게 해야할지 잘 모르겠네요.
:
: 도움을 부탁드려요..

+ -

관련 글 리스트
58202 DateTimeToTimeStamp(Days).Date; 라는 코드를 C++로 바꿀려고 하는데요.. 한울 893 2009/08/26
58213     Re:DateTimeToTimeStamp(Days).Date; 라는 코드를 C++로 바꿀려고 하는데요.. 장성호 1124 2009/08/26
58206     Re:DateTimeToTimeStamp(Days).Date; 라는 코드를 C++로 바꿀려고 하는데요.. 아제나 1158 2009/08/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.