procedure TForm1.Button1Click(Sender: TObject);
const
dayspermonth : array[1..12] of integer
=(31,28,31,30,31,30,31,31,30,31,30,31) ;
var
d1,d2 : Tdatetime ;
diffday : integer ;
year,month,day : integer ;
temp,dalsu,index : integer ;
begin
index :=1 ;
dalsu :=0 ;
edit1.text :='' ;
d1 := 1998-03-01 ;
d2 := 2000-05-31 ;
diffday := datetimetotimestamp(d2).date - datetimetotimestamp(d1).date ;
// edit1.text := inttostr(diffday) ;
year := diffday div 365 ;
temp := diffday mod 365 ;
while((temp-dayspermonth[index])>=0) do
begin
dalsu := dalsu +1 ;
temp := temp-dayspermonth[index] ;
index := index+1 ;
if index>12 then
index :=1 ;
end ;
month:=dalsu ;
day:=temp ;
if year<=0 then
edit1.text := edit1.text
else
edit1.text := edit1.text+inttostr(year)+'년' ;
if month<=0 then
edit1.text := edit1.text
else
edit1.text := edit1.text+inttostr(month)+'개월' ;
if day<=0 then
edit1.text := edit1.text
else
edit1.text := edit1.text+inttostr(day)+'일' ;
end;
안되요 제가 미련해서리 좀 이유좀 (긁적 긁적 ㅡ..ㅡ 부탁해요....)
> procedure TForm1.Button1Click(Sender: TObject);
> const
> dayspermonth : array[1..12] of integer
> =(31,28,31,30,31,30,31,31,30,31,30,31) ;
> var
> d1,d2 : Tdatetime ;
> diffday : integer ;
> year,month,day : integer ;
> temp,dalsu,index : integer ;
> begin
> index :=1 ;
> dalsu :=0 ;
> edit1.text :='' ;
> d1 := 1998-03-01 ;
> d2 := 2000-05-31 ;
> diffday := datetimetotimestamp(d2).date - datetimetotimestamp(d1).date ;
> // edit1.text := inttostr(diffday) ;
>
> year := diffday div 365 ;
> temp := diffday mod 365 ;
> while((temp-dayspermonth[index])>=0) do
> begin
> dalsu := dalsu +1 ;
> temp := temp-dayspermonth[index] ;
> index := index+1 ;
> if index>12 then
> index :=1 ;
> end ;
> month:=dalsu ;
> day:=temp ;
> if year<=0 then
> edit1.text := edit1.text
> else
> edit1.text := edit1.text+inttostr(year)+'년' ;
>
> if month<=0 then
> edit1.text := edit1.text
> else
> edit1.text := edit1.text+inttostr(month)+'개월' ;
>
> if day<=0 then
> edit1.text := edit1.text
> else
> edit1.text := edit1.text+inttostr(day)+'일' ;
>
>
> end;
>
> 안되요 제가 미련해서리 좀 이유좀 (긁적 긁적 ㅡ..ㅡ 부탁해요....)
꼭 이런식으로 구현하지 않아도 된다면 몇자 적어 볼께요
객체지향프로그래밍개념중에서 연산자 오버로딩이란 개념이 있습니다.
그것이 가장 잘 구현된것은 제가 볼때는 Data연산 처럼 보입니다.
위 소스에서 처럼 물론 해도 되겠지만 (현재 윤달등이 적용된것처럼 보이지 않네요)
date - date 하세요
정수 = date2 - date1 (일수가 나옴)
날자 = date2 - date1 (몇년몇월이라고 나옵니다.)
물론 위와 같이 해야 할 이유가 있다면 제가 참견한것을 사과드립니다.