Visitantes que leram esse artigo, também visitaram:
  • Adriano Santos
  • Como contar dias no Excel
  • Instalando o QuickReport no Delphi 7
  • Anderson Haertel Rodrigues
  • Visual Basic : Datas , Datas e mais datas…


  • Trabalhando com Datas e Horas no Delphi

    Postado por Plinio Cruz em 27 de novembro de 2003 na categoria Delphi, Programação | 2 Comments to Read

    1 Estrela2 Estrela3 Estrela4 Estrela5 Estrela (Sem votos, vote agora!)
    Loading ... Loading ...

     Vamos aporsentar três rotinas envolvendo data e horários no Delphi que vai ajudar a você a desenvolver as suas próprias rotinas, são elas: 1 – Comparando dois horários; 2 – Operação com horários; 3 – Alterando a Data e Hora do Sistema.

    1 – Comparando dois horários

    Função que retorna se a primeira hora é maior ou menor que a segunda. Recebe duas entradas e retorna como resultado ou “maior” ou “menor”. A comparação é feita com a Primeira em relação a Segunda.

    function ComparaHora(Primeira,Segunda : String):String;

    var

    Prim,Segu : TDateTime;

    begin

        Prim := StrToTime(Primeira);

        Segu := StrToTime(Segunda);

    If (Prim > Segu) then 

       begin

          Result := ‘maior’;

      end

    else

       begin

          Result := ‘menor’;

      end;

    end;

    2 – Operação com horários

    Função que retira dez minutos de um horário e retorna o novo horário com os dez minutos a menos. No exemplo repare que a quantidade de hora, minuto ou segundo tem que ter o mesmo formato aceito pelo sistema: HH:MM:SS. Neste caso retiramos dez minutos do horário original, mas podemos fazer a operação que quisermos, bastando, neste exemplo, modificar a variável que quisermos.

    function TiraDez(Hora: String):String;

    var

    Prim : TDateTime;

    Dez: TDateTime;

    begin

       Prim := StrToTime(Hora);

       Dez := StrToTime(’00:10:00′);

       Result := TimeToStr(Prim-Dez);

    end;

    3 – Alterando a Data e a Hora do Sistema

    Função que retira dez minutos de um horário e retorna o novo horário com os dez minutos a menos. No exemplo repare que a quantidade de hora, minuto ou segundo tem que ter o mesmo formato aceito pelo sistema: HH:MM:SS. Neste caso retiramos dez minutos do horário original, mas podemos fazer a operação que quisermos, bastando, neste exemplo, modificar a variável que quisermos.

    Function SystemDateTime(tDate: TDateTime; tTime: TDateTime): Boolean;

    var

       tSetDate: TDateTime;

       vDateBias: Variant;

       tSetTime: TDateTime;

       vTimeBias: Variant;

      tTZI: TTimeZoneInformation;

      tST: TSystemTime;

    begin

      GetTimeZoneInformation(tTZI);

      vDateBias := tTZI.Bias / 1440;

      tSetDate := tDate + vDateBias;

      vTimeBias := tTZI.Bias / 1440;

      tSetTime := tTime + vTimeBias;

      with tST do

        begin

           wYear := StrToInt(FormatDateTime(‘yyyy’, tSetDate));

           wMonth := StrToInt(FormatDateTime(‘mm’, tSetDate));

           wDay := StrToInt(FormatDateTime(‘dd’, tSetDate));

           wHour := StrToInt(FormatDateTime(‘hh’, tSettime));

           wMinute := StrToInt(FormatDateTime(‘nn’, tSettime));

           wSecond := StrToInt(FormatDateTime(‘ss’, tSettime));

           wMilliseconds := 0;

        end;

    SystemDateTime := SetSystemTime(tST);

    end;

    Plínio Cruz
    Analista de Sistemas – Consultor em Informática

    Educação a Distância

    • salvio furbino said,

      adicione o Dateutils na uses que sua vida será mais facil que isso…

    • Alex said,

      Gostei muito, parabens.

    Deixe seu comentário