Q&A

  • 변수에 들어간 시간의 계산......
변수에다가...시스템 날짜를 넣고

주어진 계산에 맞게 계산을 하려고 합니다..



예를 들어..



sInTime := TimeToStr(Time);

OutTime := TimeToStr(Time); 이라고 하고...



저 두 값을 서로 빼고( - ) (일한 시간의 양을 구하려 합니다..)

거기다 수 5를 더한다고 가정할때의...구문은 어떻게 되는 겁니까?



자꾸 타입 오류가 나서..이래저래..굴려봐도..안되는군요~^^;

부탁합니다..고수님들~





참고로 변수는 모두 string형 입니다...



2  COMMENTS
  • Profile
    최용일 2001.05.17 03:57
    안녕하세요. 최용일입니다.



    sInTime, OutTime이 스트링변수이니까 계산을 하려면 서수형변수로 바꾸어 주셔야 겠죠.



    var

    InTime, OutTime: string;

    TotalTime: string;

    begin

    InTime := TimeToStr(Time);

    OutTime := TimeToStr(Time);

    TotalTime := TimeToStr( StrToTime(OutTime) - StrToTime(InTime) + 5 );

    ShowMessage(TotalTime); // Result = 00:00:00

    end;



    근데 시간계산에서 5는 있으나 마나한 값인데요... 시간을 나타내는 변수형인 TDateTime(=TDate, TTime)은 정수부분에 날짜를 소수부분에 시간을 저장합니다. 그러니까 5를 더해주면 날짜가 5일 더늘어나게 되는거죠...



    5시간을 더해주는 거라면 5/24를 더해주세요...



    ^^ 항상 즐코하세요...



    진짜초보 wrote:

    > 변수에다가...시스템 날짜를 넣고

    > 주어진 계산에 맞게 계산을 하려고 합니다..

    >

    > 예를 들어..

    >

    > sInTime := TimeToStr(Time);

    > OutTime := TimeToStr(Time); 이라고 하고...

    >

    > 저 두 값을 서로 빼고( - ) (일한 시간의 양을 구하려 합니다..)

    > 거기다 수 5를 더한다고 가정할때의...구문은 어떻게 되는 겁니까?

    >

    > 자꾸 타입 오류가 나서..이래저래..굴려봐도..안되는군요~^^;

    > 부탁합니다..고수님들~

    >

    >

    > 참고로 변수는 모두 string형 입니다...

    >

  • Profile
    박서규 2001.05.17 03:45
    진짜초보 wrote:

    > 변수에다가...시스템 날짜를 넣고

    > 주어진 계산에 맞게 계산을 하려고 합니다..

    >

    > 예를 들어..

    >

    > sInTime := TimeToStr(Time);

    > OutTime := TimeToStr(Time); 이라고 하고...

    >

    > 저 두 값을 서로 빼고( - ) (일한 시간의 양을 구하려 합니다..)

    > 거기다 수 5를 더한다고 가정할때의...구문은 어떻게 되는 겁니까?

    >

    > 자꾸 타입 오류가 나서..이래저래..굴려봐도..안되는군요~^^;

    > 부탁합니다..고수님들~

    >

    >

    > 참고로 변수는 모두 string형 입니다...

    >





    실행시간 측정의 경우





    var st,et : TTime;

    i,j : integer;

    begin

    st := now;

    j := 0;

    for i := 0 to 100000000 inc(j,i);

    et := now;

    Label1.caption := formatdatetime('ss:zzz',et - st) + ' sec';

    end;



    이렇게 하면, 1부터 억까지 더하는 시간을 라벨로 초:밀리초 로 나타내죠..