Q&A

  • 신이시여 어찌하나이까..
크...지금새벽 2시 50 분인뎅..

머리를 싸메두 답이 안나오네요,.,,



두 시간간에 시간차를 알고자 하는데..방법이 조금 다릅니다..



만일 시작시간이 2001-02-03 23:25:00 이고

종료시간이 2001-02-04 05:40:00 이라면



23시경에는 35분을 쓰고

00시경에는 60분을 쓰고

01시경에는 60분을

...

...

05시경에는 40분을 쓴건데...이걸 풀어서 내용을 보여 주자면



이런 식으로 보여 주어야 합니다..

23 00 01 02 03 04 05

35 60 60 60 60 60 40



제가 머리가 나쁜건지...아님 델파이에 시간과 관련된 함수를 이해를 못하는건지..

도무지 답이 안나 옵니다..

아는 함수는 다 가져다 써보고 나온 예제는 다보았건만..

이런식으로 푸는 방법은 도무지....쩝



고수님들 도와주세용,,,,



VAR

STime : TdateTime;

ETime : TdateTime;



procedure TForm1.FormCreate(Sender: TObject);

begin

STime := Now;

end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin



end;









2  COMMENTS
  • Profile
    최용일 2001.05.09 13:36
    안녕하세요. 최용일입니다.



    프로그래머에게 있어서 사고력은 필수입니다. 조금만 잘 생각해보시면 나올텐데...



    아래 코드를 참조하세요.



    var

    StartTime, EndTime, CurTime: TDateTime;

    StartHour, StartMin, StartSec, StartMSec: Word;

    EndHour, EndMin, EndSec, EndMSec: Word;

    CurHour: Word;

    begin

    ListBox1.Items.Clear;

    StartTime := StrToDateTime('2001-02-03 23:25:00');

    EndTime := StrToDateTime('2001-02-04 05:40:00');



    DecodeTime(StartTime, StartHour, StartMin, StartSec, StartMSec);

    DecodeTime(EndTime, EndHour, EndMin, EndSec, EndMSec);



    CurHour := StartHour;

    CurTime := StartTime + 1/24 - StartMin/24/60;

    if CurTime > EndTime then

    begin

    ListBox1.Items.Add(IntToStr(CurHour) + ' ' + IntToStr(EndMin - StartMin));

    if (StartHour = EndHour) then

    Exit;

    end

    else

    ListBox1.Items.Add(IntToStr(CurHour) + ' ' + IntToStr(60-StartMin));



    while CurTime < EndTime do

    begin

    CurTime := CurTime + 1/24;

    if CurTime < EndTime then

    begin

    CurHour := (CurHour + 1) mod 24;

    ListBox1.Items.Add(IntToStr(CurHour) + ' ' + IntToStr(60));

    end;

    end;



    CurHour := (CurHour + 1) mod 24;

    if EndMin <> 0 then

    ListBox1.Items.Add(IntToStr(CurHour) + ' ' + IntToStr(EndMin));

    end;



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



    김진호 wrote:

    > 크...지금새벽 2시 50 분인뎅..

    > 머리를 싸메두 답이 안나오네요,.,,

    >

    > 두 시간간에 시간차를 알고자 하는데..방법이 조금 다릅니다..

    >

    > 만일 시작시간이 2001-02-03 23:25:00 이고

    > 종료시간이 2001-02-04 05:40:00 이라면

    >

    > 23시경에는 35분을 쓰고

    > 00시경에는 60분을 쓰고

    > 01시경에는 60분을

    > ...

    > ...

    > 05시경에는 40분을 쓴건데...이걸 풀어서 내용을 보여 주자면

    >

    > 이런 식으로 보여 주어야 합니다..

    > 23 00 01 02 03 04 05

    > 35 60 60 60 60 60 40

    >

    > 제가 머리가 나쁜건지...아님 델파이에 시간과 관련된 함수를 이해를 못하는건지..

    > 도무지 답이 안나 옵니다..

    > 아는 함수는 다 가져다 써보고 나온 예제는 다보았건만..

    > 이런식으로 푸는 방법은 도무지....쩝

    >

    > 고수님들 도와주세용,,,,

    >

    > VAR

    > STime : TdateTime;

    > ETime : TdateTime;

    >

    > procedure TForm1.FormCreate(Sender: TObject);

    > begin

    > STime := Now;

    > end;

    >

    > procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

    > begin

    >

    > end;

    >

    >

    >

    >

  • Profile
    김진호 2001.05.09 20:33