Да, идешь case'ом по переменной xMonth,
то есть, если месяц первый, то дней столько-то, если второй, то столько-то и т.д., ты ведь знаешь сколько дней в месяцах, вот и все.
Ну а можно, как в одном из примеров:
Автор: Ревенко Алексей
Код:
// Колическтво дней в любом месяце любого
// года можно получить с помощью EndOfAMonth
var
YYYY, MM, DD: Word;
D: TDateTime;
begin
DecodeDate(Date, YYYY, MM, DD);
D := EndOfAMonth(YYYY, {Номер месяца});
DecodeDate(D, YYYY, MM, DD); // DD - номер последнего дня в месяце
end;
©Drkb::00732
http://delphiworld.narod.ru/
DelphiWorld 6.0
--------------------------------------------------------------------------
Получить число дней в месяце
Код:
function DaysOfMonth(mm, yy: Integer): Integer;
begin
if mm = 2 then
begin
Result := 28;
if IsLeapYear(yy) then Result := 29;
end
else
begin
if mm < 8 then
begin
if (mm mod 2) = 0 then
Result := 30
else
Result := 31;
end
else
begin
if (mm mod 2) = 0 then
Result := 31
else
Result := 30;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
days: Integer;
begin
days := DaysOfMonth(7, 2001);
ShowMessage('July 2001 has ' + IntToStr(days) + ' days');
end;
©Drkb::00735
http://delphiworld.narod.ru/
DelphiWorld 6.0
--------------------------------------------------------------------------
Код:
function LastDayOfCurrentMonth: TDate;
var
y, m, d: Word;
begin
DecodeDate(now, y, m, d);
m := m + 1;
if m 12 then
begin
y := y + 1;
m := 1;
end;
Result := EncodeDate(y, m, 1) - 1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(DateToStr(LastDayOfCurrentMonth));
end;
©Drkb::00736
http://delphiworld.narod.ru/
DelphiWorld 6.0