Показать сообщение отдельно
  #12  
Старый 28.07.2007, 23:24
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Да, идешь 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
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием