MinutesBetween 함수를 사용하다 이상한 점을 발견해서 올립니다.
고수 분들의 지도 편달을 부탁드립니다.
<!--CodeS-->
procedure TForm1.Button1Click(Sender: TObject);
var
stDiff, stStart, stEnd: String;
tStart, tEnd:TDateTime;
i: Integer;
begin
tStart := StrToDateTime(Edit1.Text); // 2006-12-04 오전 9:00:00
tEnd := StrToDateTime(Edit2.Text); // 2006-12-04 오전 9:02:00
i := Minutesbetween(tStart, tEnd);
Edit3.Text := IntTostr(i); // 2분 차이임에도 불구하고 1이 나옴
end;
<!--CodeE-->
아무리 봐도 제 눈에는 2분의 차이가 나는데 Edit3 박스 안에는 1이라고 나오는 이유와 해결책 좀 가르쳐 주세요~~~
아마도 버그인듯하네요...
원래 시간은 실수의 소수부분을 이용하는데 MinutesBetween에서 소수연산시 발생하는 오차에 대해서 간과한듯...
2분차이일때 1.9999999999... 를 trunc함수를 써서 1을 리턴하네요...
2분1초일때는 2를...
MinutesBetween대신 직접 만들어 쓰시는것이 좋을듯...
^^ 항상 즐코하세요...