StrToDateTime이라는 함수로 string을 TDateTime으로 변환이 가능합니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString strTime[2];
strTime[0] = FormatDateTime("YYYY-MM-DD AM/PM HH:NN:SS:ZZZ", Now());
Sleep(1345);
strTime[1] = FormatDateTime("YYYY-MM-DD AM/PM HH:NN:SS:ZZZ", Now());
TDateTime dt[2];
dt[0]=StrToDateTime(strTime[0]);
dt[1]=StrToDateTime(strTime[1]);
String s=FormatDateTime("YYYY-MM-DD hh:nn:ss ZZZ",(TDateTime)(dt[1].Val - dt[0].Val));
ShowMessage(s);
}
그런데 테스트해보시면 아시겠지만
미리세크(ms)는 제대로 안됩니다.
그럼..
Programmer 님이 쓰신 글 :
: 이미 파일에 기록이 되어있는 상태라...
: 이 포맷대로... FormatDateTime("YYYY-MM-DD AM/PM HH:NN:SS:ZZZ", Now());
:
: 그래서 이 엑셀파일에 기록되어 있는 2셀의 시간을 읽어와서 연산이 가능한가 싶어서요...
:
: Nibble 님이 쓰신 글 :
: : TDateTime 타잎은 내부적으로 double 형이므로,
: :
: : double begin = (double)Now();
: : Sleep(1000);
: : double end = (double)Now();;
: : AnsiString str = FormatDateTime("YYYY-MM-DD AM/PM HH:NN:SS:ZZZ",(TDateTime)(end - begin));
: : 하시면 됩니다.
: :
: : 짧은 시간차를 구하시는거라면,
: : #include <mmsystem.h>
: : DWORD begin = timeGetTime();
: : Sleep(1000);
: : DWORD end = timeGetTime();
: : AnsiString str = AnsiString(end - begin) + " msecs";
: :
: : 처럼 하시는게 더 나을것 같습니다.
: :
: : Programmer 님이 쓰신 글 :
: : : AnsiString strTime[2];
: : :
: : : strTime[0] = FormatDateTime("YYYY-MM-DD AM/PM HH:NN:SS:ZZZ", Now());
: : :
: : : Sleep(1000);
: : :
: : : strTime[1] = FormatDateTime("YYYY-MM-DD AM/PM HH:NN:SS:ZZZ", Now());
: : :
: : : 위의 두 시간차를 구하고 싶은데... strTime[1] - strTime[0]
: : :
: : : 가능한가요.