TDateTime에 대해...
TDateTime에서 실제 정보를 저장하는 자료형은 double형 입니다.
대게는 저 double형 자료에 바로 접근하지 않고 Method나 operator를 이용해서 접근하게 되는데
접근 방법은 간단합니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDateTime dt;
dt.Val=1234123.1243;
}
그런데 중요한것은 저 dauble형 자료가 어떤의미를 가지느냐 하는것이겠죠?
[TDateTime 의 double Val의 의미]
- Val 값의 1은 하루를 타나냅니다.
- 그럼 1시간은 1 /24 이겠죠?
- 1분은 1 / ( 24 *60 ) 이겠구
- 1초는 1 / ( 24 * 60 * 60 ) 입니다.
@ TDateTime의 값을 하루 증가하려면?
뭐 DateUtils.hpp 에 관련함수가 있습니다만...
최종적으로 DateTime.Val의 값을 1 증가하면 됩니다.
TDateTime dt=Now();
dt.Val+=1; //하루 증가(내일)
@그런데 1 이 하루를 의미하는것은 알겠는데 몇년 몇월 몇일인지는 어떻게 알까요?
그것은 기준이 있어야 겠죠?
기준은 F1 을 클릭해 help를 보면 잘 나와 있습니다.
값(val) 일시
------------------------------
0 12/30/1899 12:00 am
2.75 1/1/1900 6:00 pm
-1.25 12/29/1899 6:00 am
35065 1/1/1996 12:00 am
즉 1899년 12월 30일 오전 12시가 TDateTime의 Val값은 0(Zero)라는것입니다.
그이전은 마이너스가 되는것이구요
사실 TDateTime의 Val을 직접 access하는것은 별로 권장하고 싶지는 않습니다.
TDateTime에서 제공되는 Method나 DateUtils에 있는 함수를 이용하길 권하구요..
혹시나 TDateTime을 이용하여 좀더 편리한 Time 클래스를 만든다던가 하신다면
위 내용을 더욱 정확히 이해하심이 필요하겠죠
그럼..
김명섭 님이 쓰신 글 :
: Float 값을 TDateTime에 대입할 수 없나요?
: 또는 시분초로 변환할 순 없나요?
: Ex) stdtime=73948096;
:
: float stdtime;
: TDateTime dtStdTime;
:
: dtStdTime=stdtime;
:
: 답변부탁드립니다^^
|