GARANTIR DESCONTO

Fórum Como somar minutos numa hora? #341356

07/05/2007

0

Olá amigos, preciso de um funcao que eu passe uma hora inicial, uma hora final e um integer como minutos a somar... e este vai somando os minutos na hora, até chegar na hora final.

fiz assim:

      UltHora := cdsConfMed_Dias.FieldByName(´HORA_INICIO´).AsDateTime;
      HoraFim := cdsConfMed_Dias.FieldByName(´HORA_TERMINO´).AsDateTime;
      Min := cdsConfMed_Dias.FieldByName(´DURACAO_MIN´).AsInteger;

      while not (UltHora > HoraFim) do
      begin
        cdsAg_Item.Append;
        cdsAg_ItemIDAGENDA_ITENS.AsInteger := CodItens;
        cdsAg_ItemIDAGENDA.AsInteger := cdsAgendaIDAGENDA.AsInteger;
        cdsAg_ItemHORA.AsDateTime := UltHora;
        cdsAg_Item.Post;
        UltHora := UltHora + Min;
        Inc(CodItens);
      end;

HoraFim e UltHora como TTime
Min como Integer.

Porém nao funciona, ele somente dá um append.

[]s


Titanius

Titanius

Responder

Posts

07/05/2007

Massuda

Como UltHora e HoraFim são TDateTime, eles expressam tempo em dias. Logo, para somar alguns minutos teria que converter esse intervalo em minutos para dias (basta dividir minutos por 24*60). Fique de olho com problemas relacionados com ponto flutuante.


Responder

Gostei + 0

07/05/2007

Titanius

Olá massuda... obrigado :wink: , resolvi desta forma:


UltHora := UltHora + StrToTime(´00:´+ IntToStr(Min)+´:00´);

[]s


Responder

Gostei + 0

07/05/2007

Saint

Eu utilizo essas funcoezinhas que fiz..

function AdicionaMinuto (const DT: TDateTime; const Mnts: Extended): TDateTime;
begin
Result := (DT + Mnts / 1440.0);
end;

function AdicionaHora (const DT: TDateTime; const Hrs: Extended): TDateTime;
begin
Result := (DT + Hrs / 24);
end;

function AdicionaDia (const DT: TDateTime; const Ds: Extended): TDateTime;
begin
Result := DT + Ds;
end;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar