Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
시간계산에 대하여
안녕하세요...
테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다.
두개의 필드에 대해 (끝시간-시작시간)의 값을 계산하고 싶습니다.
즉, 시간간격을 계산하고 싶습니다.
참고로 시작시간과 끝시간에 대한 데이터 type은 Time으로 두었습니다.
답변 부탁드립니다..
2
COMMENTS
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;
맞는지 모르겠군요.
직접해보시고 안되면 다시 연락주세요..
그럼, 좋은 하루 되세요.
^^
0
0
삭제
수정
댓글
글쎄요.
•
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;
////////////////////////////////////////////////////////////////////////////////
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
최선기
•
1999.06.23 02:18
1
COMMENTS
/
0
LIKES
탐색기같이 생긴 검색화면 만들기?
모승열
•
1999.06.29 11:26
최선기 께서 말씀하시기를... > 아래 질문을 했는데.. 혹시나 이해 못 하실까봐 다시 합니다. > 제 질문...
박형진
1999.06.23 01:55
0
COMMENTS
/
0
LIKES
퀵레포트 미리보기 루프 빠져나오기
남윤혁
•
1999.04.15 22:13
4
COMMENTS
/
0
LIKES
텍스트 인쇄?
남윤혁
•
1999.04.16 02:34
-.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
남윤혁
•
1999.04.16 00:37
다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
이정욱
•
1999.04.16 01:06
화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
안치봉
•
1999.04.15 23:28
남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
최선기
1999.06.23 01:54
0
COMMENTS
/
0
LIKES
TreeView로 검색화면 만들기가 가능한지?
Faster
•
1999.04.15 22:15
1
COMMENTS
/
0
LIKES
[요청]쩝... QuickReport 관련...
김영대
•
1999.04.16 18:42
> Faster wrote: > 출력물(QuickReport)에 대해 자세히 알고 싶습니다. > > 델파이 책중에 QuickReport...
신현숙
•
1999.06.23 00:46
1
COMMENTS
/
0
LIKES
Mdi Child 폼에 또다른 Mdi Child폼을 넣을수....
모승열
•
1999.06.29 11:24
신현숙 께서 말씀하시기를... > 안녕하세요.. > 질문이 있어서리~~ > ^^;; > > Mdi 폼에 mdi child ...
nuki
•
1999.06.23 00:01
1
COMMENTS
/
0
LIKES
스트링그리드에 입력을 하고 싶은데...
유수
•
1999.06.23 00:41
OnDrawCell 이벤트에서 직접 코딩을 해 주시면 됩니다. 이경우 현재 그려질 셀의 Canvas를 얻을...
남윤혁
•
1999.04.15 22:13
4
COMMENTS
/
0
LIKES
텍스트 인쇄?
남윤혁
•
1999.04.16 02:34
-.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
남윤혁
•
1999.04.16 00:37
다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
이정욱
•
1999.04.16 01:06
화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
안치봉
•
1999.04.15 23:28
남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
bds
•
1999.06.22 23:47
1
COMMENTS
/
0
LIKES
입력할때 에러메세지2
유수
•
1999.06.23 00:36
키필드에 값이 지정되지 않아서 나는 에러입니다. 해당 테이블의 프라이머리 키필드는 반드시 값이 지...
ppyp
•
1999.06.22 23:13
2
COMMENTS
/
0
LIKES
quick report 3.0.4 에 대해서...
이영일
•
1999.04.15 19:10
CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... CPU의 벤더는 구할수 있는데...
김영대
•
1999.04.15 20:12
> 이영일 wrote: > CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... > CPU의...
이영일
•
1999.04.15 19:10
1
COMMENTS
/
0
LIKES
[소스구함] CUP, BIOS의 시리얼번호나 Product ID를..
김영대
•
1999.04.15 20:12
> 이영일 wrote: > CUP랑 BIOS의 시리얼번호나 Product ID를 알구 싶은데 어떨게 해야 하나요... > CPU의...
bds
•
1999.06.22 21:08
1
COMMENTS
/
0
LIKES
입력할때 에러메세지
최석기
•
1999.06.22 21:30
bds 께서 말씀하시기를... > 무더운 여름에 고생많으십니다. > DBMemo로 입력하려고 합니다. > DBMemo...
권순종
1999.06.22 21:02
0
COMMENTS
/
0
LIKES
네트워크에서 객체 전송 ?
이순희
•
1999.04.15 08:34
2
COMMENTS
/
0
LIKES
시간계산에 대하여
안녕하세요... 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. 두개의 필드에 대해 (끝시간-시작시간)의 값을 계산하고 싶습니다. 즉, 시간간격을 계산하고 싶습니다. 참고로 시작시간과 끝시간에 대한 데이터 type은 Time으...
bluepine
•
1999.04.17 01:18
이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
글쎄요.
•
1999.04.15 19:02
이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
franco97
1999.06.22 20:46
0
COMMENTS
/
0
LIKES
[Q]oracle 에서 sql 오류결과를 보여주려고 하는데..
Ghost
1999.04.15 15:27
0
COMMENTS
/
0
LIKES
라우터의 IP를 공유하는 Host방식 전용선에서 Midas
장일형
1999.06.22 20:28
0
COMMENTS
/
0
LIKES
OLE자동화기법에 대해서 알려주세요
김영해
•
1999.04.15 08:49
3
COMMENTS
/
0
LIKES
화면보호기 같은 프로그램 ?
손용석
•
1999.06.22 19:58
이제 델파이를 배우기 시작한 초보생인데 어디엔가 델파이 한글 도움말이 있다고 들었는데 아무리...
이정욱
•
1999.04.15 10:21
아래 작업전환을 막는것이 있습니다. 이 코드는 나이렉스의 팁 게시판에서 가져왔습니다. var Form1:...
김영해
•
1999.04.17 07:48
감사합니다.이정욱님 많은 도움이 되었습니다.
이동화
•
1999.04.15 08:56
5
COMMENTS
/
0
LIKES
프린터에 대하여 부탁드림니다.
배재민
•
1999.06.22 19:36
엑세스를 이용하여 프로그램을 만들었습니다. 그리고 Delphi 4.0 CD에 있는 인스톨 쉴드 2.02를 이용하...
김영해
•
1999.04.15 09:20
이동화 wrote: > 안녕하세요! > 프린터에대해서 궁금한게 있습니다. 아니 지금 되지가 않습니다. > 프린...
김경수
•
1999.06.22 19:57
안녕하세요. 저도 그런적이 있었거든요. 근데 실제 설치할 컴퓨터(저같은경우 win95)에 access가 설치되...
이동화
•
1999.04.15 09:39
김영해 wrote: > 이동화 wrote: > > 안녕하세요! > > 프린터에대해서 궁금한게 있습니다. 아니 지금 되...
진은정
•
1999.06.22 19:54
InstallSheild인지 BDE인지, 하여간 DAO랑 잘 어울리질 못하더군요, 저도 이것때문에 무척 고생을 했...
강동연
•
1999.06.22 19:29
1
COMMENTS
/
0
LIKES
(질문)제발 좀 알려주세요. 코드 어디가 잘못되었는지..
섭
•
1999.06.22 20:13
강동연 께서 말씀하시기를... > 고수님들 부탁드립니다. > > 테이블 리스트의 내용을 파일에 저장할때 ...
이순희
1999/04/15 08:34
Views
179
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안녕하세요...
> 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다.
> 두개의 필드에 대해 (끝시간-시작시간)의 값을 계산하고 싶습니다.
> 즉, 시간간격을 계산하고 싶습니다.
> 참고로 시작시간과 끝시간에 대한 데이터 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;
맞는지 모르겠군요.
직접해보시고 안되면 다시 연락주세요..
그럼, 좋은 하루 되세요.
^^