|
== 기존 ==
mDaytoHour = StrToInt(TDate(FTotalTime).FormatString("DD"));
if(mDaytoHour >= 30) mDaytoHour = mDaytoHour - 30;
else mDaytoHour = mDaytoHour + 1;
mDaytoHour = mDaytoHour * 24 + (StrToInt(TDateTime(FTotalTime).FormatString("HH")));
== 현재 ==
#include <DATEUTILS.HPP>
TDateTime mCalTime;
mCalTime = FTotalTime;
mDaytoHour = HoursBetween(0, mCalTime);
방법 조언 감사합니다.
이것이 훨씬 좋네요..
생각해 보니까 1달이 넘어가면 다시 1일이 되서 버그가 있는데 이 함수 쓰면 자연적으로 해결 되네요..
감사합니다.
kylix 님이 쓰신 글 :
: DateUtils에 있는 HoursBetween 함수를 써보세요
:
: 뷰트 님이 쓰신 글 :
: : 경과 시간을 구했네욤..
: :
: : 날짜를 구해서 30일 보다 크면, 날짜 - 30
: : 30일 보다 작으면 날짜 + 1 을 해서
: :
: : 날짜가 나오면 * 24 해서
: :
: : 구한 시간에 더하면 경과 시간이 나오네욤..
: :
: : 생각해서 만들었는데, 이 방법은 노가다고,,,, ,어딘가 경과 시간을 구하는 함수가 있을꺼 같은데;;;
: :
: :
: : 하여튼 삽질 조금 하면 나오네욤...
: :
: :
: :
: :
: :
: : 뷰트 님이 쓰신 글 :
: : : 제가 시간을 표시하는데요..
: : :
: : : a->caption = TDateTime(FTotalTime).FormatString("HH-NN-SS");
: : :
: : : 이런식으로 표시 해서,,
: : :
: : : "12:11:99" 이렇게 나타나는 것인데,
: : :
: : : 그런데 총 시간이 24시간이 넘는 경우가 있어서, (경과 시간을 표시 하고 싶습니다.)
: : :
: : : HH 부분이 0~23 밖에 표시 못하잖아요???
: : :
: : : 그래서
: : :
: : : 0~99 혹은 0~9999 까지 바꾸고 싶은데,
: : :
: : : 아무리 포멧 관련해서 봐도 기능이 없네요??
: : :
: : : 이럴때 어떻게 표현하면 제가 원하는 포멧을 만들수 있을까요?
: : :
: : : 23시간 59분 59초 이상을 표시 하려니 애매 하네요???
: : :
: : :
: : :
: : : ==
: : :
: : : 시간 포멧이..
: : :
: : : xxxx.xxxx
: : :
: : : 소수점 아래가 시 분 초 이고
: : : 소수점 위가 날짜라고 알았는데,,
: : :
: : : 소수점 위 날짜가 넘어가면 +24?? 이런 포멧이 있을꺼 같은데....
: : :
: : : 아이디어가 떠어르지 않네욤..
: : :
: : : 그리고 시간 포멧을
: : :
: : : Tdate에 넣으니.. 1899년 12월 30일...로 찍히네요... 아마 기준날짜가 이거겠죠???
: : :
: : : 24시간 지나니 1899년 12월 31일로 찍해서 하루가 지났다는것은 알수가 있는데;;;;;;;;;
: : :
: : : 시간 포멧을 가지고 놀기 애매~하네요..
|