Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Дни в месяце

01.01.2007

Автор: Ревенко Алексей

// Колическтво дней в любом месяце любого
// года можно получить с помощью EndOfAMonth
 
var
  YYYY, MM, DD: Word;
  D: TDateTime;
begin
  DecodeDate(Date, YYYY, MM, DD);
  D := EndOfAMonth(YYYY, {Номер месяца});
  DecodeDate(D, YYYY, MM, DD); // DD - номер последнего дня в месяце
end;

https://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; 

https://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;

https://delphiworld.narod.ru/

DelphiWorld 6.0