Q&A

  • [급]문자열을 날짜형으로 바꾸어서 날짜계산할려고 합니다.
1. c_result_date := StrToDateTime(Result_date);

2. cut_napip_date := StrToDateTime(napip_date);

3. temp := c_result_date - cut_napip_date;



1,2의 년월일을 구해서 데이트타입으로 변환하여 경과일을 구하려 합니다. 근데

c_result_date, cut_napip_date의 변수형 선언은 무엇으로 해야하나요 ?????

그리고 위의 형식이 맞나요...

20001230 - 20000701 을 빼면 약 180여일이 나오겠죠... 이 180여일의 값을 구하려

합니다.

고 수님들 알려주세요....

1  COMMENTS
  • Profile
    이대선 2000.08.18 20:47
    강길남 wrote:

    > 1. c_result_date := StrToDateTime(Result_date);

    > 2. cut_napip_date := StrToDateTime(napip_date);

    > 3. temp := c_result_date - cut_napip_date;

    >

    > 1,2의 년월일을 구해서 데이트타입으로 변환하여 경과일을 구하려 합니다. 근데

    > c_result_date, cut_napip_date의 변수형 선언은 무엇으로 해야하나요 ?????

    > 그리고 위의 형식이 맞나요...

    > 20001230 - 20000701 을 빼면 약 180여일이 나오겠죠... 이 180여일의 값을 구하려

    > 합니다.

    > 고 수님들 알려주세요....



    이건 제 답변이 아니고 김영대님의 팁을 올려드립니다.



    아래대로 해도 원하는 결과를 얻을 수 있겠네요...



    // StrToDate()는 문자열을 날짜형으로 바꾸는 함수이나 형태가

    // "m/d/y", "d/m/y", "y/m/d" 등의 형태이어야만 합니다

    // 하지만 VarToDateTime()를 사용하면 다양한 형태의 문자열을 다룰 수 있습니다



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.Button1Click(Sender: TObject);

    var

    D1, D2, D3 : TDateTime;

    begin

    D1 := VarToDateTime('December 6, 1969');

    D2 := VarToDateTime('6-Apr-1998');

    D3 := VarToDateTime('1998-Apr-6');

    ShowMessage(DateToStr(D1)+' '+DateToStr(D2)+' '+

    DateToStr(D3));

    end;