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 (몇년몇월이라고 나옵니다.)
물론 위와 같이 해야 할 이유가 있다면 제가 참견한것을 사과드립니다.