Q&A

  • 날짜계산합니다.
안녕하세요. paradox db를 쓰고 있구요.
그냥 string 형태의 날짜를 date type 으로 변환하여 경과일수를 산출하려고 합니다. date 변환에서 계속 에러가 납니다.

ex)
a = '20020408' 의 형태이고
b = '20020327' 이라면

a - b 하여 경과일수를 산출해야 합니다.

좀 알켜주세요.
3  COMMENTS
  • Profile
    KYH 2002.04.08 19:36
    (*---------------------------------------------------------------*)
    (*날자 To일자에서 From일자를 감(-)한 일수구하기*)
    function UDF_DateCount(PST_FromDate, PST_ToDate: String): Integer;
      { PST_FromDate  : String   -> From 문자형날자
        PST_ToDate    : String   -> To   문자형날자    getfocus
        Result        : Integer  -> 일수 Return
        [ Example ] ---------------------------------->
        UDF_DateCount('19960901','19960915') => 14일 }
    var LDT_Date: TDateTime;
        LIN_FromDayCount, LIN_ToDayCount: Integer;
    begin
         LDT_Date         := UDF_StrToDate(PST_FromDate);
         LIN_FromDayCount := Trunc(LDT_Date);
         LDT_Date         := UDF_StrToDate(PST_ToDate);
         LIN_ToDayCount   := Trunc(LDT_Date);
         Result           := LIN_ToDayCount - LIN_FromDayCount;
    end;



  • Profile
    박선지 2002.04.08 20:59
    답변 감사합니다.
    그런데
    아래의 문장대로 하면 UDF_StrToDate 가 정의 되지 않았다고 합니다.

    그래서 UDF_를 빼고 하면 StrToDate('20020408')로써 변환이 되질않습니다.

    초보도 너무 초보죠?


  • Profile
    KYH 2002.04.08 21:47
    너무 성의없이 답변드렸군요..--;;;

    그냥 예전에 쓰던거라 생각없이.. ^^;

    (*---------------------------------------------------------------*)
    (*문자를 날자형으로변환*)
    function UDF_StrToDate(PST_StringDate: String): TDateTime;
      { PST_StringDate   : String     -> 날자형태 문자열
        Result           : TDateTime  -> 날자형 Return
        [ Example ] ---------------------------------->
        UDF_IsDate('19960715') => 1996-07-15 }
    begin
      if PST_StringDate <> '' then begin
         Insert('-',PST_StringDate,5);
         Insert('-',PST_StringDate,8);
         Result := StrToDate(PST_StringDate);
      end;
    end;


    (*---------------------------------------------------------------*)
    (*날자 To일자에서 From일자를 감(-)한 일수구하기*)
    function UDF_DateCount(PST_FromDate, PST_ToDate: String): Integer;
      { PST_FromDate  : String   -> From 문자형날자
        PST_ToDate    : String   -> To   문자형날자    getfocus
        Result        : Integer  -> 일수 Return
        [ Example ] ---------------------------------->
        UDF_DateCount('19960901','19960915') => 14일 }
    var LDT_Date: TDateTime;
        LIN_FromDayCount, LIN_ToDayCount: Integer;
    begin
         LDT_Date         := UDF_StrToDate(PST_FromDate);
         LIN_FromDayCount := Trunc(LDT_Date);
         LDT_Date         := UDF_StrToDate(PST_ToDate);
         LIN_ToDayCount   := Trunc(LDT_Date);
         Result           := LIN_ToDayCount - LIN_FromDayCount;
    end;