년과 월은 검증이 된 부분인데
일에 대한 부분을 새로 추가 했거든요..
월 부분을 copy해서 day만 바꿔줬는데.. 맞는지 모르겠어요..
if ymd_flag = 1 then begin
Decodedate(s_date,yy1,mm1,dd1);
yy1:=yy1 + wInterval;
//**********************************************************************//
if (dd1 = 31) and ((mm1 = 4) or (mm1 = 6) or (mm1 = 9) or (mm1 = 11)) then
dd1 := 30;
if (mm1 = 2) and ((dd1 = 29) or (dd1 = 30) or (dd1 = 31)) then
dd1 := 28;
//**********************************************************************//
tmpDate:=Encodedate(yy1,mm1,dd1);
end
else if ymd_flag = 2 then begin
Decodedate(s_date,yy1,mm1,dd1);
if ( mm1 + wInterval ) > 12 then begin
yy1 := yy1 + ((mm1 + wInterval) div 12);
mm1 := ((mm1 + wInterval) mod 12);
end
else begin
mm1 := mm1 + wInterval;
end;
//**********************************************************************//
if (dd1 = 31) and ((mm1 = 4) or (mm1 = 6) or (mm1 = 9) or (mm1 = 11)) then
dd1 := 30;
if (mm1 = 2) and ((dd1 = 29) or (dd1 = 30) or (dd1 = 31)) then
dd1 := 28;
//**********************************************************************//
tmpDate:=Encodedate(yy1,mm1,dd1);
end
else if ymd_flag = 3 then begin
Decodedate(s_date,yy1,mm1,dd1);
if ( mm1 + wInterval ) > 12 then begin
yy1 := yy1 + ((mm1 + wInterval) div 12);
mm1 := ((mm1 + wInterval) mod 12);
end
else begin
dd1 := dd1 + wInterval;
end;
//**********************************************************************//
if (dd1 = 31) and ((mm1 = 4) or (mm1 = 6) or (mm1 = 9) or (mm1 = 11)) then
dd1 := 30;
if (mm1 = 2) and ((dd1 = 29) or (dd1 = 30) or (dd1 = 31)) then
dd1 := 28;
//**********************************************************************//
tmpDate:=Encodedate(yy1,mm1,dd1);
end;