안녕하십니까 ...
다시 질문합니다.
두개의 maskedit3, maskedit4로 일자를 구하려 하는데 잘안되네요...
maskedit3는 20000101
maskedit4는 20000301 입니다.
maskedit4 - maskedit3 한 일자가 60의 값입니다. 60을 구하려하는 것이죠..
editmask 의 형식은 !0000-!90-90;0;_ 이며
아래 처럼하니 error가 나네요....
var
n1,n2 : tdate;
n3 : integer;
begin
n1 := StrTodate(maskedit3.text);
n2 := StrTodate(maskedit4.text);
n3 := Trunc(n2-n1);
showmessage(inttostr(n3));
TimeStamp를 쓰시면 간단하게 구하실 수 있습니다.
function TForm1.GetDayCount: Integer;
var
FirstStamp, LastStamp: TTimeStamp;
begin
// 에디트마스크의 텍스트를 TDateTime형으로 바꾼후 다시 TTimeStamp형으로 바꿉니다.
// MaskEdit1 = 2000-01-01
FirstStamp := DateTimeToTimeStamp(StrToDate(MaskEdit1.Text));
// MaskEdit2 = 2000-03-01
LastStamp := DateTimeToTimeStamp(StrToDate(MaskEdit2.Text));
// Result = 두 날짜 사이의 값 = 60
Result := LastStamp.Date - FirstStamp.Date;
end;
마스크에디터의 값은 2000-01-01과 같은 형식이어야 합니다. 마스크에디터의
EditMask는 !0000-!90-90;형식이 더 좋은 것 같은데요...
^^ 항상 즐코하세요.
초보1 wrote:
> 안녕하십니까 ...
> 다시 질문합니다.
>
> 두개의 maskedit3, maskedit4로 일자를 구하려 하는데 잘안되네요...
> maskedit3는 20000101
> maskedit4는 20000301 입니다.
> maskedit4 - maskedit3 한 일자가 60의 값입니다. 60을 구하려하는 것이죠..
>
> editmask 의 형식은 !0000-!90-90;0;_ 이며
>
>
> 아래 처럼하니 error가 나네요....
>
> var
> n1,n2 : tdate;
> n3 : integer;
> begin
> n1 := StrTodate(maskedit3.text);
> n2 := StrTodate(maskedit4.text);
> n3 := Trunc(n2-n1);
> showmessage(inttostr(n3));
>