Converter tempo em minutos

02/03/2013

10

Bom dia,

Tenho esse campo:

Tempo, Formato: 00:00

Como faço pra pegar sempre os minutos deste campo ?

00:10 = 10min
01:00 = 60min
02:00 = 120min ...

Grato.



Responder

Posts

02/03/2013

William

Olá Dex, existem algumas possibilidades de executar essa conversão, segue abaixo um exemplo onde a função recebe um valor TTime e retorna um integer com os minutos:
- Primeiro fragmento o tempo (hora, minuto, segundo e milisegundos) nesse caso só usei hora e minuto.
- E depois converto em minutos as horas e somo aos minutos já existentes.

// Função para conversão
function TForm2.HoraToMinute(Time: TTime): Integer;
var
  hora, minuto, segundo, miliseg: Word;
begin
    DecodeTime(Time, hora, minuto, segundo, miliseg);
    Result := ((hora * 60) + minuto);
end;


OBS.: Esse tipo de função existe em vários sites na net, é normal esse tipo de necessidade.

Qualquer dúvida posta aí ....
Responder

04/03/2013

Vander Carlos

É isso mesmo wllfl, muito obrigado.

Só mais uma coisa.

Quando eu calculo o valor e entro no Campo do valor, campo fica em branco. Estou trabalhando com os componentes da paleta DataControls, como faço pra ele ficar com o valor ? O cliente quer a opção de mudar manualmente, sem precisar desse calculo.

Abraços.
Responder

04/03/2013

William

Dex acredito q seja problema na atribuição do valor para DBEdit, então tente assim:

hora := time;
ClientDataSet.FieldByName('seu_campo').value := HoraToTime(hora);


Estou supondo q vc esteja usando um ClientDataSet, você coloca o nome do seu campo ('seu_campo') para atribuir o retorno da função HoraToTime().
Responder

04/03/2013

Vander Carlos

Estou usando DataSource/Table.

Quando calculo o valor faço a atribuição assim:

edtValor.Text:= FloatToStr(total);
Responder

04/03/2013

William

Estou usando DataSource/Table.

Quando calculo o valor faço a atribuição assim:

edtValor.Text:= FloatToStr(total);


Se vc está atribuindo o retorno da função, então tem q passar de integer para string:


edtValor.Text:= IntToStr(total);


Atribuindo o valor para o edit não está ficando visível para o usuário editar?
Responder

04/03/2013

Vander Carlos

Quando calculo ele atribui o valor normal.

Quando eu tento alterar o valor, assim que entro no DBEdit o campo fica em branco.
Responder