const
DaysInMonth: array[1..12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
Result := DaysInMonth[Int_Amonth];
if (Int_Amonth = 2) and fn_IsLeapYear(Int_AYear) then Inc(Result);
end;
윤년
function fn_IsLeapYear(Int_Year: Integer): Boolean;
begin
Result := (Int_Year mod 4 = 0) and ((Int_Year mod 100 <> 0) or (Int_Year mod 400 = 0));
end;
착한천사 김경록입니다.
날짜계산을 Delphi에서 하시는지? 아니면, Database에서 계산을 하시는지..
흠..
일단, 계산방법은 입력받은 "일자+1" 을 하셔서 일자가 1일지만 check하면 되겠슴다..
간단하죠.
Database에서는 DB가 어떤거냐에 따라서 지원하느냐 안하느냐의 차이지만.
Database에서도 입력받은 일자 + 1 을 하고, 그 일자가 1인가 아닌가만 판단하면,
이것이 그달의 말일인지 아닌지 판단이 날 듯 하군요..
실제론, 테스트를 안해봤지만.
이론상으로 쉽게 생각이 되니.. 금방 될꺼라고 생각되네요..
const
DaysInMonth: array[1..12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
Result := DaysInMonth[Int_Amonth];
if (Int_Amonth = 2) and fn_IsLeapYear(Int_AYear) then Inc(Result);
end;
윤년
function fn_IsLeapYear(Int_Year: Integer): Boolean;
begin
Result := (Int_Year mod 4 = 0) and ((Int_Year mod 100 <> 0) or (Int_Year mod 400 = 0));
end;
참고하세요