Como somar minutos numa hora?
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:
HoraFim e UltHora como TTime
Min como Integer.
Porém nao funciona, ele somente dá um append.
[]s
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
Curtidas 0
Respostas
Massuda
07/05/2007
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.
GOSTEI 0
Titanius
07/05/2007
Olá massuda... obrigado :wink: , resolvi desta forma:
UltHora := UltHora + StrToTime(´00:´+ IntToStr(Min)+´:00´);
[]s
UltHora := UltHora + StrToTime(´00:´+ IntToStr(Min)+´:00´);
[]s
GOSTEI 0
Saint
07/05/2007
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;
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;
GOSTEI 0