GARANTIR DESCONTO

Fórum Subtrair minutos de uma determinada hora #372933

30/07/2009

0

Olá,

Como faço para subtrair minutos de uma determinada hora?

Luiz


L_carlos

L_carlos

Responder

Posts

30/07/2009

Osocram

IncMinute(myDate, -40);

Olá, Como faço para subtrair minutos de uma determinada hora? Luiz



Responder

Gostei + 0

30/07/2009

Danielrsanches

se precisar ´extrair´ os minutos de determinada hora:

minuteof(Date);


declare DateUtils na cláusula uses ...


abraços !!!


Responder

Gostei + 0

31/07/2009

L_carlos

vlw osocram, sua dica funcionou.

Agora como faço para subtrair minutos por exempo qdo a hora for meia noite, como por exemplo subtrair 40 minutos de 00:10 (meia noite e 10 minutos), pois usando a sua dica o resultado é 00:30 (esse resultado errado só ocorre se tento diminuir minutos qdo a hora é meia noite).

Luiz


Responder

Gostei + 0

01/08/2009

Marco Salles

Tente ...

Código: 
function SubtrairMinutos(Hora:TTime;M:word):TTime; 
var 
mm:real; 
begin 
if M <= 60 tHEN 
begin 
mm:=M; 
mm:=(1/24)*(M/60); 
if mm>Hora Then 
  Hora:= 1 - (mm - Hora) 
else 
  Hora = Hora - mm 
result:=Hora; 
end 
else 
begin 
Showmesage(´Minutos Fora da especificação´); 
Gera Erro etc... 
end; 


ps: Da para pensar em fazer para faixa de valoes minutos maiores que 60 segundos

ps é sempre bom e dar preferencia para fun~ções nativas , o problema
é que devemos conhecer suas limitações e nen sempre elas
fazemm exatamente o que queremos
_________________
<

´Não esqueça de deixar uma mensagem informando se as dicas deram certo, para que outros usuários com as mesmas dúvidas saibam como resolve-las´


Se DEUS Não Existe Então Vale Tudo


Responder

Gostei + 0

01/08/2009

L_carlos

Olá Marco, desculpe a ignorancia, mas como uso a sua função por exemplo para subtrair 30 minutos de uma hora que está informada em um maskedit?

Luiz


Responder

Gostei + 0

01/08/2009

Marco Salles

Olá Marco, desculpe a ignorancia, mas como uso a sua função por exemplo para subtrair 30 minutos de uma hora que está informada em um maskedit?



é simples ..

var
Hora:TTime;
begin
try
  Hora:=StrtoTime(SeuMaskEdit.Text);
  Hora:=SubtrairMinutos(Hora,30);
  showmessage(Timetostr(Hora));
except
  Showmessage(´Erro´);
end;
end;



Responder

Gostei + 0

02/08/2009

L_carlos

Vlw Marco. Sua função resolveu o problema de subtrair minutos qdo a hora é meia noite.

Luiz


Responder

Gostei + 0

27/08/2009

Marco Salles

L_Carlos navegando por ai , achei algo interressante e mais simples que
pode ser estendido com mais facilidades para o Subtrair Minutos com valores
maiores do que 60

Acho que funciona Ate Minutos = 1440 (teste ai...)

Adaptei para a sua necessidade

function NovaSubtrairMinutos(Hora:TTime;M:word):TTime;
begin
  result:=(StrToTime(´23:59:59´) - M/1440 + StrToTime(´00:00:01´) + Hora)
end;


Utilização

procedure TForm1.Button1Click(Sender: TObject);
var
Hora,HoraAux:TTime;
begin 
try
  HoraAux:=StrtoTime(MaskEdit1.Text);
  Hora:=NovaSubtrairMinutos(HoraAux,strtoint(edit1.text));
  form1.caption:=Timetostr(Hora);
except
  Showmessage(´Erro´);
end;


Tópico Original

http://www.activedelphi.com.br/forum/viewtopic.php?t=26814&highlight=horas&sid=f1e2f21f7dd389eceaf9d814b348daaa

hummmmmmmm... Interressante


Responder

Gostei + 0

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

Aceitar