Q&A

  • 시간계산에 대하여
안녕하세요...

테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다.

두개의 필드에 대해 (끝시간-시작시간)의 값을 계산하고 싶습니다.

즉, 시간간격을 계산하고 싶습니다.

참고로 시작시간과 끝시간에 대한 데이터 type은 Time으로 두었습니다.

답변 부탁드립니다..



2  COMMENTS
  • Profile
    bluepine 1999.04.17 01:18
    이순희 wrote:

    > 안녕하세요...

    > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다.

    > 두개의 필드에 대해 (끝시간-시작시간)의 값을 계산하고 싶습니다.

    > 즉, 시간간격을 계산하고 싶습니다.

    > 참고로 시작시간과 끝시간에 대한 데이터 type은 Time으로 두었습니다.

    > 답변 부탁드립니다..

    >



    안녕하세요, 미숙한 놈입니다.^^'

    델파이 헬퍼에서 답변한 것을 다시 적습니다.

    저도 초보자이지만 제가 아는 한도내에서

    답변을 해드리겠습니다.

    많은 도움이 된다면 참 좋겠어요..



    음, 계산필드란 말을 들어보셨는지요.

    계산필드를 사용하면 해결이 될것 같군요.



    방법은,

    첫번째로

    TTable(혹은 TQuery) 컴포넌트를 더블 클릭하면 필드 편집기가 보일 겁니다.

    보인다면, 필드 편집기에서 오른쪽 마우스 버튼을 클릭하세요.

    그럼, 팝업메뉴가 나타면서 Add Fields와 New Field란 메뉴가 보일 겁니다.

    그럼 New Field를 선택하고 나온 폼에서

    Name , Type(여기에서는 Time을 선택하면 되겠죠?)와 Size를 입력한후

    Field Type을 Calcurated로 선택합니다.

    그런 후, OK버튼을 누르시면 추가된 계산필드가 필드 편집기에 나타나죠?



    자, 그럼 두번째로

    두개의 필드값을 계산해서 이 계산 필드에 값을 넣도록 하면 됩니다.

    그러기 위해서는 OnCalcFields이벤트를 편집하면 됩니다.



    OnCalcFields이벤트는 TTable(or TQuery)컴포넌트의 이벤트에서 찾을 수

    있으며,

    코드를 살짝 함 보시도록 하죠.



    //테이블 컴포넌트의 이름이 UseTime이라 해보죠.

    //계산필드는 calcTime이라 하고요.



    procedure TForm1.UseTimeCalcFields(DataSet: TDataset);

    var

    startTime : TDateTime;

    lastTime : TDateTime;

    resultTime : TDateTime;

    begin

    startTime := UseTime.FieldByName('startTime').AsDateTime;

    lastTime := UseTime.FieldByName('lastTime').AsDateTime;

    resultTime := lastTime - startTime;



    UseTime.FieldByName('calcTime').AsDateTime :=

    resultTime;

    end;



    맞는지 모르겠군요.

    직접해보시고 안되면 다시 연락주세요..



    그럼, 좋은 하루 되세요.

    ^^



  • Profile
    글쎄요. 1999.04.15 19:02
    이순희 wrote:

    > 안녕하세요...

    > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다.

    > 두개의 필드에 대해 (끝시간-시작시간)의 값을 계산하고 싶습니다.

    > 즉, 시간간격을 계산하고 싶습니다.

    > 참고로 시작시간과 끝시간에 대한 데이터 type은 Time으로 두었습니다.

    > 답변 부탁드립니다..

    >



    필드타입을 Date나 DateTime으로 바꾸시는 것이 좋아요.

    그래서 올바른 계산을 하실 수 있습니다.

    다음과 같은 함수를 사용해보셔요.





    Unit

    SysUtils

    선언부

    ////////////////////////////////////////////////////////////////////////////////

    function CalcTimeToSec( FromTime, ToTime: TDateTime ) : String;

    function CalcDateTimeToSec( FromTime, ToTime: TDateTime ) : LongInt;

    구현부

    ////////////////////////////////////////////////////////////////////////////////

    function CalcTimeToSec( FromTime, ToTime: TDateTime ) : String;

    begin

    Result := FormatDateTime( 'hh:nn:ss', ( ToTime - FromTime ) );

    end;



    ////////////////////////////////////////////////////////////////////////////////

    function CalcDateTimeToSec( FromTime, ToTime: TDateTime ) : LongInt;

    var

    FromTimeStamp, ToTimeStamp : TTimeStamp;

    begin

    FromTimeStamp := DateTimeToTimeStamp( FromTime );

    ToTimeStamp := DateTimeToTimeStamp( ToTime );



    Result := (ToTimeStamp.Date - FromTimeStamp.Date) * 24 * 60 * 60 + ( ( ToTimeStamp.Time div 1000 ) - ( FromTimeStamp.Time div 1000 ) );

    end;



    ////////////////////////////////////////////////////////////////////////////////

    • 이동화
    • 1999.04.15 08:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      1999.04.15 09:20
      이동화 wrote: > 안녕하세요! > 프린터에대해서 궁금한게 있습니다. 아니 지금 되지가 않습니다. > 프린...
    • 이동화
      1999.04.15 09:39
      김영해 wrote: > 이동화 wrote: > > 안녕하세요! > > 프린터에대해서 궁금한게 있습니다. 아니 지금 되...
    • 김영해
    • 1999.04.15 08:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.15 10:21
      아래 작업전환을 막는것이 있습니다. 이 코드는 나이렉스의 팁 게시판에서 가져왔습니다. var Form1:...
    • 김영해
      1999.04.17 07:48
      감사합니다.이정욱님 많은 도움이 되었습니다.
    • 이순희
    • 1999.04.15 08:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • bluepine
      1999.04.17 01:18
      이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
    • 글쎄요.
      1999.04.15 19:02
      이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
    • 이호선
    • 1999.04.15 05:08
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 전철호
      1999.04.20 03:56
      이호선 wrote: > 안녕하세요.. > 일반 control(예: Panel)에 이미지를 실을려하는데 > 어떻게해야 할지...
    • 안치봉
      1999.04.15 06:12
      이호선 wrote: > 안녕하세요.. > 일반 control(예: Panel)에 이미지를 실을려하는데 > 어떻게해야 할지...
    • 신인재
      1999.04.15 06:22
      안치봉 wrote: > 이호선 wrote: > > 안녕하세요.. > > 일반 control(예: Panel)에 이미지를 실을려하는...
    • 이슬
    • 1999.04.15 03:34
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      1999.04.17 08:00
      이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
    • 신호성
      1999.04.16 01:36
      > 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다. > 근데, DBGrid에...
    • 박종모
      1999.04.15 04:44
      이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
    • 글쎄요
      1999.04.15 05:41
      추가로 답변합니다. 2번째 건데 답변이 잘 못된 것 같아요. 가장 좋은 방법은 DBGRID 대신에 STRINGGRID...
    • 김정수
    • 1999.04.15 01:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.15 02:44
      김정수 wrote: > 음...mci관련 프로그램을 짜다가... 이런 메세지가 뜨더군요... > Could not create out...
    • Faster
    • 1999.04.15 01:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 아무개
      1999.04.15 04:49
      안녕하세요? 델파이 Q&A는 최소한 노력을 하는 사람들이 배워가는 곳입니다. 문제를 내고, 답을 맞추는 ...
    • 이정욱
      1999.04.15 01:49
      여러가지 방법이 있습니다. 각 콘트롤의 Tag를 사용하는 방법이 있구요.. 그냥 Name을 가지고 사용하는 ...
    • 이슬
    • 1999.04.14 23:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.04.14 23:58
      이슬님 저 구창민입니다. 메일 보내드렸는데 또 질문 올리셨군요. 못 받으셨다면 이글 다시 보시기 바래...
    • 보라뚱땡이
      1999.04.15 01:45
      이 사이트 자료실 54번 항목에 500개의 버튼이미지가 있는데요..... 그거말구 BitBtn에 사이즈상 Icon을...
    • 안치봉
      1999.04.14 21:18
      하재희 wrote: > 안녕하십니까! > 저는 현재 델파이로 프로젝트를 수행하고 있는 하재희라고 합니다. > ...
    • 이진수
    • 1999.04.14 19:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.14 21:01
      이진수 wrote: > microsoft Active Movie 2.0을 install 시키고 임의의 구간을 입력 > 받아서 재생하려고...
    • 이순희
    • 1999.04.14 06:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.14 19:39
      이순희 wrote: > 자꾸 질문해서 죄송합니다.. > 델파이를 많이 사용 안해봐서... 잘 모르는게 넘 많네요....
    • 이호선
    • 1999.04.14 05:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.14 07:50
      메뉴를 옆으로 나오게 하려면, 여러개의 팝업메뉴를 사용하시는 편이 좋습니다. 또한 그래픽을 넣으려면 ...
    • 문창완
    • 1999.04.14 05:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.14 07:48
      에러를 가로 챈다기 보다는 에러가 났을때 반응을 하게 하는것입니다. 하지만 프린터 캔버스를 이용해서 ...
    • 이진수
    • 1999.04.14 01:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.14 01:33
      에러안나고 잘 되는데요? 전 윈98에 델파이 4.0 (패치3)를 사용합니다. 이진수 wrote: > microsoft Ac...
    • 이진수
    • 1999.04.14 00:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.14 00:44
      음.. 제생각에는요... 아래의 ...... 안에서 무슨 문제가 있는것 같네요.. 레코드를 이동시켜버린다 던가...
    • 문창완
    • 1999.04.14 00:07
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.14 00:29
      문창완 wrote: > 프린터 출력시 진행율을 보여주고 싶습니다. > Printer Object 루프가 아닌 프린터 시그...
    • 이상돈
      1999.04.14 01:21
      델파이 디렉토리(sourcertlwin)에'winspool.pas'가 있는데 이건 어떤내용인지요..? 이걸 이용하면 안되는...
    • 안치봉
      1999.04.14 01:35
      이상돈 wrote: > 델파이 디렉토리(sourcertlwin)에'winspool.pas'가 있는데 > 이건 어떤내용인지요..? >...
    • 문창완
      1999.04.14 05:26
      안치봉 wrote: > 이상돈 wrote: > > 델파이 디렉토리(sourcertlwin)에'winspool.pas'가 있는데 > > 이건...