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
![]() |
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;