Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Converter segundos p/ minutos


Eder

Pergunta

Ola...eu tou acostumado a converter segundos para horas....usando esta função:

//Função converter Segundos para Horas
function Seg_Hora( Seg:LongInt ):string;
Var Hora,Min:LongInt;
  Tmp : Double;
begin
Tmp := Seg / 3600;
Hora := Round(Int(Tmp));
Seg :=  Round(Seg - (Hora*3600));
Tmp := Seg / 60;
Min := Round(Int(Tmp));
Seg :=  Round(Seg - (Min*60));
Result := FormatFloat( '00', Hora )+ ':' + FormatFloat( '00', Min ) + ':' + FormatFloat( '00', Seg );
end;

porem agora preciso converter segundos para minutos...tentei adaptar o codigo acima, mas sem sucesso..

alguém poderia me dar uma ajudinha para alterar esta função....onde eu consiga converter segundos para minutos??

Grato

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest --Morpheus --

Sabendo que 1 minuto é igual a 60 segundos, a operação ficaria:

Minutos := Quantidade_de_Segundos div 60; <== isto resulta em minutos redondos

para ficar com o resto dos segundos que sobram:

Resto_Segundos := Quantidade_de_Segundos - (Minutos *60); <== isto é o que sobrou de segundos

para mostrar o resultado:

StrMinutos := FloatToStr(Minutos) + ':' +FloatToStr(Resto_Segundos);

ex. 83 segundos:

Minutos := 83 div 60; ==> resulta em 1

Resto_Segundos := 83 -(1 *60); ==> resulta em 23

logo:

StrMinutos := FloatToStr(1) + ':' + FloatToStr(23); ==> resulta em '1:23'

se não interessar os segundos restantes, é só ignorar.

t+

Link para o comentário
Compartilhar em outros sites

  • 0

Carinha...fiz o testezinho e funcionou beleza...as variaveis coloquei tipo REAL.

mas me deu curiosidade de saber como ficaria com a sua dica, uma funcãozinha pronta tipo aquele ali em cima...que postei só que de Seg_Minutos

tenho dificuldades em montar função.....

acredito que seria mais ou menos assim:

//Função converter Segundos para MINUTOS
function Seg_Minuto( Seg:LongInt ):string;
Var
Minutos, Resto_Segundos : Real;
begin
Minutos := Quantidade_de_Segundos div 60; //<== isto resulta em minutos redondos
Resto_Segundos := Quantidade_de_Segundos - (Minutos *60); //<== isto é o que sobrou de segundos
Result  := FloatToStr(Minutos) + ':' +FloatToStr(Resto_Segundos);//resultado
end;

O que você acha...esta função estaria correta?

muito Obrigado.

t+

Link para o comentário
Compartilhar em outros sites

  • 0

//Função converter Segundos para MINUTOS

Oi Eder ... tenta este

function FormatSecsToMin(Secs: LongInt): string;
var
   Min: Word;
begin
   Secs := Secs mod 3600;
   Min := Secs div 60;
   Secs := Secs mod 60;
   Result := Format('%d:%d', [Min, Secs]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Label1.Caption := FormatSecsToMin(strtoint(edit1.text));
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Ola..JOnas....funcionou certinho...

Com a ideia do Morpheus.....montei esta aqui e funcionou certinho:

//Função converter Segundos para MINUTOS
function Seg_Minuto( Seg:LongInt ):string;
Var
Minutos, Resto_Segundos : Real;
begin
Minutos := Quantidade_de_Segundos div 60; //<== isto resulta em minutos redondos
Resto_Segundos := Quantidade_de_Segundos - (Minutos *60); //<== isto é o que sobrou de segundos
Result  := FloatToStr(Minutos) + ':' +FloatToStr(Resto_Segundos);//resultado
end;
porem tem que criar a variavel global:
Quantidade_de_segundos:Integer; //que receberá a quantidade de segundos.
para chamar o resultado:
procedure TForm1.Button2Click(Sender: TObject);
begin
 Quantidade_de_Segundos:=StrToInt(edit1.text);
 Label2.Caption := seg_minuto(Quantidade_de_Segundos);
end;

Obrigado a você e ao Morpheus pela..

t+

Editado por Eder
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Morpheus --
porem tem que criar a variavel global:

Quantidade_de_segundos:Integer; //que receberá a quantidade de segundos.
para chamar o resultado:
procedure TForm1.Button2Click(Sender: TObject);
begin
 Quantidade_de_Segundos:=StrToInt(edit1.text);
 Label2.Caption := seg_minuto(Quantidade_de_Segundos);
end;
Eder, não precisa ser global não... Este Quantidade_de_Segundos é o seu parâmetro. ;)
//Função converter Segundos para MINUTOS
function Seg_Minuto( Seg:LongInt ):string;
Var
Minutos, Resto_Segundos : Real;
begin
Minutos := Seg div 60; //<== isto resulta em minutos redondos
Resto_Segundos := Seg - (Minutos *60); //<== isto é o que sobrou de segundos
Result  := FloatToStr(Minutos) + ':' +FloatToStr(Resto_Segundos);//resultado
end;
e a chamada fica similar a do Jhonas.
procedure TForm1.Button2Click(Sender: TObject);
begin
  Label2.Caption := seg_minuto(StrToInt(edit1.text));
end;

t+

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...