Code:OdejmijLMD: Różnice pomiędzy wersjami

Z Motława
(Utworzył nową stronę „function OdejmijLMD(OdRok, OdMc, OdDzien, DoRok, DoMc, DoDzien : Word; aCzyDaty: Boolean = True) : TLMD; begin // dni if DoDzien + 1 < OdDzien then begin if D…”)
 
Linia 1: Linia 1:
 +
{{FunkcjaDesc
 +
|nazwa=OdejmijLMD
 +
|opis=
 +
|wejscie=OdRoku, OdMiesiaca, OdDnia, DoRoku, DoMiesiaca, DoDnia - liczby, aCzyDaty - Boolean
 +
|wyjscie= Record [[Code:TLMD|TLMD]]
 +
}}
 +
 +
== techniczne ==
 +
<code>
 
function OdejmijLMD(OdRok, OdMc, OdDzien, DoRok, DoMc, DoDzien : Word; aCzyDaty: Boolean = True) : TLMD;
 
function OdejmijLMD(OdRok, OdMc, OdDzien, DoRok, DoMc, DoDzien : Word; aCzyDaty: Boolean = True) : TLMD;
 
begin
 
begin
Linia 41: Linia 50:
 
   end;
 
   end;
 
end;
 
end;
 +
</code>

Wersja z 09:58, 17 gru 2009

Function-icon.jpg Funkcja:
OdejmijLMD
opis skrócony:
parametry wejściowe: OdRoku, OdMiesiaca, OdDnia, DoRoku, DoMiesiaca, DoDnia - liczby, aCzyDaty - Boolean
parametry wyjściowe: Record TLMD

techniczne

function OdejmijLMD(OdRok, OdMc, OdDzien, DoRok, DoMc, DoDzien : Word; aCzyDaty: Boolean = True) : TLMD; begin

 // dni
 if DoDzien + 1 < OdDzien then
 begin
   if DoMc = 1 then
   begin
     Inc(DoMc, 12);
     Dec(DoRok);
   end;
   Inc(DoDzien, DaysInAMonth(DoRok, DoMc-1));
   Dec(DoMc);
 end;
 Result.Dni := DoDzien - OdDzien;// + 1;
 if aCzyDaty then
   Inc(Result.Dni, 1);
 { obsluga sytuacji gdy otrzymalismy tyle dni ile ma miesiac - ma to miejsce
   gdy wprowadzimy okres od 1go do ost. dnia miesiaca}
 if ((DoMc = OdMc) OR (OdDzien = 1)) AND (Result.Dni = DaysInAMonth(DoRok, DoMc)) then
 begin
   Result.Dni := 0;
   Inc(DoMc);
 end;
 // miesiace
 if DoMc < OdMc then
 begin
   Inc(DoMc,12);
   Dec(DoRok);
 end;
 Result.Mies := DoMc - OdMc;
 // lata
 Result.Lata := DoRok - OdRok;
 if Result.Lata < 0 then
 begin
   Result.Dni := 0;
   Result.Mies := 0;
   Result.Lata := 0;
 end;

end;