질문드립니다.
시작시간과 종료시간을 기준으로 일수와 시간을 계산하는 코드입니다.
문제는 날자를 계산할때.. 종료날자에서 시작날짜를 빼면 0.593423... 이렇게 나옵니다.
소숫점 아래는 제거하고 0만 찍고 싶은데.. 아래처럼 실행하면 반올림되어서 1로 찍힙니다.
반올림 하지 않고 0만 찍으려면 어쩔게 해야 하는지요..?
이상 초보올림..
// 시작시간과 종료시간 출력
s := StrToDateTime( FStartDateTime );
e := StrToDateTime( FEndDateTime );
lbDate.Caption := FormatFloat('0', TDate(e) - TDate(s))+'days '+ FormatDateTime('hh:mm:ss', e - s );
음... 코드가 좀 이상한거 같군요..
절삭이랑 반올림은 밑에 답변있듯이 그냥 Trunc와 Round를쓰시면 됩니다만..
TDateTime은 실수형입니다. 날짜는 정수고 소숫점 이하는 시간값입니다.
계산하신 값이 뭔지는 정학히 뭔지 모르겠지만.
같은 날짜라면.. 시간값이 당연히 소숫점 이하로 나옵니다..
절삭을 어느부분에서 하실지에 대해서 생각을 하셔야 할듯 싶은데요.
FormatDateTime('hh:mm:ss', e - s );
이건 시간값을 찍고자 하시는거 같은데.. 시분초어디서 끊어줄지부터
생각을 먼저 하시는것이.. ㅠㅠ
음. 소숫점 이하자리 값은
12시가 0.5 이런식이거든요? 1시간은 1/12 분은 1/3600 ^^
아시겠죠? 무조껀 절삭하시면 시간값은 무조껀 0나올껏 같네요..
그럼.