Code:OdejmijLMD: Różnice pomiędzy wersjami
Z Motława
(→techniczne) |
|||
| Linia 7: | Linia 7: | ||
== techniczne == | == techniczne == | ||
| − | < | + | <pre> |
| − | 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 |
// dni | // dni | ||
if DoDzien + 1 < OdDzien then | if DoDzien + 1 < OdDzien then | ||
| Linia 50: | Linia 50: | ||
end; | end; | ||
end; | end; | ||
| − | </ | + | </pre> |
Wersja z 10:02, 17 gru 2009
| |
Funkcja: | ||
|---|---|---|---|
| OdejmijLMD | |||
| opis skrócony: | |||
| parametry wejściowe: | OdRoku, OdMiesiaca, OdDnia, DoRoku, DoMiesiaca, DoDnia - liczby, aCzyDaty - Boolean | ||
| parametry wyjściowe: | rekord typu 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;