Q&A

  • [질문]시간 계산 방법
안녕하십니까?
왕 초보 유저 입니다.
시간을 계산하는 프로그램을 짜는데... 잘 안됩니다
고수님들 도와 주십시오.

  HYear, HMonth, HDay, Hour, Min, Sec, MSec: Word;
  HDate1, HDate2, DffDate: TDateTime;
  strdate1, strdate2, str : string;

for njj := 1 to  100 do begin

            strdate1 :=  MyXLapp.Cells[njj+1, 3];
            strdate2 :=  MyXLapp.Cells[njj, 13];

            //시작 날짜지정  StrToDateTime도 있으나 시스템 영향 안받게 하려했믐
            HYear := StrToint(copy(strdate1,1,4));
            HMonth:= StrToint(copy(strdate1,5,2));
            HDay  := StrToint(copy(strdate1,7,2));
            Hour  := StrToint(copy(strdate1,9,2));
            Min   := StrToint(copy(strdate1,11,2));
            Sec   := StrToint(copy(strdate1,13,2));
            MSec  := 0;
            HDate1 := EncodeDate(HYear, HMonth, HDay) + EncodeTime(Hour, Min, Sec, MSec);

            HYear := StrToint(copy(strdate2,1,4));
            HMonth:= StrToint(copy(strdate2,5,2));
            HDay  := StrToint(copy(strdate2,7,2));
            Hour  := StrToint(copy(strdate2,9,2));
            Min   := StrToint(copy(strdate2,11,2));
            Sec   := StrToint(copy(strdate2,13,2));
            MSec  := 0;
            HDate2 := EncodeDate(HYear, HMonth, HDay) + EncodeTime(Hour, Min, Sec, MSec);

            DffDate := HDate1-HDate2;

end;

액셀에서 불러오는 데이터(20090404123033)형태를 불러서 계산하는 프로그램인데 1번은 잘 돌아 가는데
for 문 2번째 돌때 아래 라인에서 에러가 발생 합니다.

HDate1 := EncodeDate(HYear, HMonth, HDay) + EncodeTime(Hour, Min, Sec, MSec);

원래 TDataTime 형식은 2번 넣을수 없는건가요???
고수님들 조언 부탁 드립니다...ㅠㅠ
1  COMMENTS
  • Profile
    최용일 2009.07.09 08:44
    몇번을 넣든 상관은 없는데요...
    어떤 에러가 발생하는지는 모르겠지만...
    저 코드에서 발생할 수 있는 에러는 변환에러(EConvertError)밖에 없을듯하네요...
    입력받은 데이터가 널이거나... 아님 HMonth에 13이 들어가거나 해서 날짜형 범위를 초과했거나...

    데이터를 확인해보세요...