AnsiString strTime[2];
//strTime[0], strTime[1]에 엑셀의 특정 셀(날짜)를 읽어 온 후
//처리
TDateTime DiffDT;
try {
//이렇게 TDateTime형식으로 바꿔서 그냥 빼면 차이만큼 나옵니다.
DiffDT = StrToDateTime(strTime[1]) - StrToDateTime(strTime[0]);
//그냥 DiffDT를 그대로 쓰면 원하지 않는 값이 나옵니다.
//예를 들어, 500ms 차이 날때
//1899-12-30 AM 12:00:00:500 으로 나와요..ㅋㅋ
//좀 손 품 좀 팔면 이쁘게 됩니다
//다음 함수들을 참고하세요.
// 아래 함수 사용시에는 DateUtils.hpp헤더에는 추가해야합니다.
//소스 상단에 (#pragma hdrstop 다음에) #include를 추가
//DecodeDateTime함수: TDateTime의 값을 모두 따로따로 변환합니다.
//
//HoursOf(), MinutesOf(), SecondsOf(), MilliSecondsOf()처럼
//XXXXOf()으로 된 함수들은 1개의TDateTime에서 원하는 값만 뽑아줍니다.
//
//HoursBetween(), MinutesBetween(), SecondsBetween(), MilliSecondsBetween()처럼
//XXXXBetween()으로 된 함수들은 2개의 TDateTime사이의 원하는 값의 차이를 구해줍니다.
//
//HoursSpan(), MinutesSpan(), SecondsSpan(), MilliSecondsSpan()처럼
//XXXXSpan()으로 된 함수들은 2개의 TDateTime사이의 원하는 값의 차이를 구해줍니다.
//이것의 값은 Between함수와 달리 결과가 절대 값입니다.
//
} catch(EConvertError e) {
//StrToDateTime함수(문자를 TDateTime으로 바꾸는 함수)에서 에러 발생시 처리
}
DateUtils.hpp헤더에는 더 많은 유용한 함수들이 있습니다.
참고하세요.
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]
:
: 가능한가요.
|