Funções no Delphi

Veja algumas funções no Delphi como: Quantidade de anos entre datas, etc.

function TForm1.QtdAnosEntreDatas(DataIni, DataFim: TDateTime;bDesconsiderarDias:Boolean=False): Single; var QntAnos : Single; DataMaior : TDateTime; DataMenor : TDateTime; Fator : integer; Fracao : single; begin QntAnos := 0; if DataFim > DataIni then begin DataMenor := DataIni; DataMaior := DataFim; end else begin DataMenor := DataFim; DataMaior := DataIni; end; // Utiliza as datas no mesno dia = 1º if bDesconsiderarDias then begin DataMenor := StrToDate('01/'+FormatDateTime('mm/yyyy',DataMenor)); DataMaior := StrToDate('01/'+FormatDateTime('mm/yyyy',DataMaior)); end; while DataMaior > DataMenor do begin QntAnos := QntAnos + 1; DataMenor := IncMonth(DataMenor,12); end; if DataMaior < DataMenor then begin DataMenor := IncMonth(DataMenor,-12); QntAnos := QntAnos - 1; end; QntAnos := QntAnos + (DataMaior - DataMenor) / 365; Result := QntAnos; end; function TForm1.MesExtenso(dData:TDateTime):String; var mes, ano : integer; begin mes := MonthOf(dData); ano := YearOf(dData); case mes of 1: Result := 'Janeiro/' + IntToStr(ano); 2: Result := 'Fevereiro/' + IntToStr(ano); 3: Result := 'Março/' + IntToStr(ano); 4: Result := 'Abril/' + IntToStr(ano); 5: Result := 'Maio/' + IntToStr(ano); 6: Result := 'Junho/' + IntToStr(ano); 7: Result := 'Julho/' + IntToStr(ano); 8: Result := 'Agosto/' + IntToStr(ano); 9: Result := 'Setembro/' + IntToStr(ano); 10:Result := 'Outubro/' + IntToStr(ano); 11:Result := 'Novembro/' + IntToStr(ano); 12:Result := 'Dezembro/' + IntToStr(ano); end; function TForm1.ValorIndiceAuxiliar : Double; var r1,r2,r3,r4,r5,r6,Resultado: String; PosDecimal: Integer; begin if RandSeed = 0 then Randomize; repeat repeat r1 := IntToStr(Random(999)); r2 := IntToStr(Random(999)); r3 := IntToStr(Random(999)); r4 := IntToStr(Random(999)); r5 := IntToStr(Random(999)); r6 := IntToStr(Random(999)); Resultado := (r1+r2+r3+r4+r5+r6); Resultado := (copy(Resultado,0,15)); until ((length(Resultado) = 15) and (StrToFloat(copy(Resultado,15,1)) > 0)); repeat PosDecimal := Random(Length(Resultado)); until ((PosDecimal > 1) and (PosDecimal <= 14)); insert(',',Resultado,PosDecimal); until ((length(Resultado) = 16) and (StrToFloat(copy(Resultado,16,1)) > 0) and (pos(',',Resultado) > 0)); result := StrToFloat(Resultado); end;

Artigos relacionados