C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[63572] [답변] 날짜형식(TDateTime)에서 0의 의미
정성훈.해미 [sage5nor] 1369 읽음    2011-01-24 11:25
안녕하세요.
정성훈.해미입니다.

TDateTime에서 0은 기준이되는 특정 날짜를 의미합니다.

1899년 12월 30일 0시.

TDateTiem의 내부를 보면 값이 double로 저장됩니다.
0,  1.23,    40536등등 이런식으로

이것을 0일때 정해진 날짜로보고 거기서부터 계산해서 우리가 보는 날짜로 보이게 됩니다.

그래서 다음의 0부분은 몇일을 의미하는 것이 아닙니다.

DaysBetween(MyDateTime,0)) 은 다르게 표현하면
DaysBetween(MyDateTime, TDateTime("1899-12-30 00:00:00")); 이 됩니다.

40536 가 나온 것은
(2011년 01월 21일) - (1899년 12월 30일)을 해서 나온 것입니다.

아래에 TDateTime에 대한 좀 더 자세한 설명이 있으니 참고하세요.
http://docwiki.embarcadero.com/VCL/en/System.TDateTime


차범석 님이 쓰신 글 :
: 정성훈.해미니 답변해주셔서 감사합니다^^
:
: 제가,,
:
:
: //---------------------------------------------------------------------------
:
: #include <DATEUTILS.HPP>
: #include <vcl.h>
: #pragma hdrstop
:
: #include "Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
:     : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:     int  D_Day;
:     TDateTime MyDateTime;
:     unsigned short py,pm,pd;
:     MyDateTime = Now();
:     MyDateTime.DecodeDate(&py,&pm,&pd);
:     Edit1->Text=(IntToStr(py)+"년"+IntToStr(pm)+"월"+IntToStr(pd)+"일");
:
:
:     TDateTime  ReserveDT;
:     Edit3->Text=(D_Day = DaysBetween(MyDateTime,0));
:
: }
: //---------------------------------------------------------------------------
:
: 이렇게 소스를 쳤는데요..
:
: 이제 Edit1에다가 오늘의 날짜가 나오구
: EDIT2 에다가는 임의로 제가 날짜를 써놓았구요(2011년12월31일)
: EDIT3에다가는 남은 일수를 나오게 하려는데요..
: 저기 위에 처럼 하니까,. 40564 가 나오네요;;
: 모가 잘못된건지.. 답변 부탁드려요 ㅠㅠ
: 맨 밑에가 잘못된거 같기도 하구.. 잘모르겠어요ㅠㅠ 도와주세요~~ㅠㅠ
: 맨밑에(MyDateTime, 0 )  이거 있자나요..
: 마이데이트타임이.... 오늘의 날짜고..
: 뒤에 0 은 임의 대로 써놓은건데요.. 그럼 365-0 = 365가 나오는게 맞지 않나요??
: 근데 40564가 나오네요ㅠㅠ
: 도와주세요..ㅜㅜ

+ -

관련 글 리스트
63555 D-DAY 프로그램 다시 질문 입니다ㅠㅠ 차범석 1564 2011/01/21
63572     [답변] 날짜형식(TDateTime)에서 0의 의미 정성훈.해미 1369 2011/01/24
63580         Re:[답변] 날짜형식(TDateTime)에서 0의 의미 차범석 1263 2011/01/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.