안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당자 임펠리테리입니다.
제가 알기로도 원하는 시, 분, 초등을 TDateaTime 형으로 바꿔주는 함수는 없습니다.
보여주신 바와같이 이런 종류의 함수로는 EncodeTime() 함수가 유일하죠.
그러니까, 질문하신 것처럼 원하는 만큼의 시/분/초를 더하려면 다음과 같이 해야죠.
만약 10시간을 더하려면,
time += EncodeTime((Word)10, (Word)0, (Word)0, (Word)0);
간단하죠? 분, 초 등도 마찬가집니다.
두번째 질문..
원하시는게 무엇인지 정확하게 모르겠는데요, 보여주신 소스대로 하면 당연히 그렇게
나오게 됩니다. 왜냐하면, 원래
00 : 00 : 01
00 : 00 : 02
.. : .. : ..
이런 결과를 얻으려면 SettingTime-CurrentTime이 아니라 CurrentTime-SettingTime로
해줘야겠죠? 그런데 시간에 있어서는 음수가 의미가 없기때문에 양수로 해석된겁니다
. 그런데, 여기에 1을 더해주면 얘기가 달라집니다. 1은 하루, 즉 1 day이기 때문에
음수인 SettingTime-CurrentTime를 더하면, 결국 하루에서부터 마이너스 값으로
변화하는 겁니다. 이해가 되시나요?
그럼, 도움되시길 바라면서, 이만...
독립문에서 임펠리테리였습니다.
(cbuilder, skyhi18)
|