unit uFunksieXXXX;

interface
uses
   SysUtils;

Type TFunksie = class
   private
      fNaam     :String;
      fPersoon  :String;
      fDatum    :String;
      fInkomste :real;
      fUitgawes :real;
   public

     constructor Create(Naam, Persoon, Datum:String;Inkomste, Uitgawes:real);
     function toString : String;
     function berekenWins  : real;
     function vindKwartaal : Integer;
     function skepNaamString : String;
   end;

implementation

{ TFunksie }


constructor TFunksie.Create(Naam, Persoon, Datum: String; Inkomste,
  Uitgawes: real);
begin
  fNaam      := Naam;
  fPersoon   := Persoon;
  fDatum     := Datum;
  fInkomste  := Inkomste;
  fUitgawes  := Uitgawes;
end;

function TFunksie.toString: String;
begin
  result := fNaam + #9 + fPersoon + #9 + fDatum + #9 +
            FloatToStrF(fInkomste, ffCurrency, 8,2)+ #9 +
            FloatToStrF(fUitgawes, ffCurrency, 8,2);
end;

function TFunksie.berekenWins: real;
begin
  result := fInkomste - fUitgawes;
end;

function TFunksie.vindKwartaal: Integer;
var
  iMaand : Integer;
begin
  iMaand := StrToInt(copy(fDatum, 6,2));
  case iMaand of
    1..3 : result := 1;
    4..6 : result := 2;
    7..9 : result := 3;
    else
       result := 0;
  end;
end;
function TFunksie.skepNaamString: String;
var
   sVoorl, sVan, sNaam : string;
   iSpasie, iKomma, iPlek, K : Integer;
begin
   iSpasie := pos(' ',fPersoon);
   iKomma  := pos(',', fPersoon);
   sVan    := copy(fPersoon,iSpasie+1,iKomma - iSpasie-1);
   sNaam   := copy(fPersoon,iKomma + 1, 100);
   sVoorl   := copy(sNaam,1,1);
   for K := 1 to length(sNaam) do
     begin
       if sNaam[K] = ' ' then
          sVoorl := sVoorl + copy(sNaam,K+1,1);
     end;
   result := sVoorl + ' ' + sVan;
end;



end.
