Converter tempo em minutos
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.
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.
Vander Carlos
Curtidas 0
Respostas
William
02/03/2013
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.
OBS.: Esse tipo de função existe em vários sites na net, é normal esse tipo de necessidade.
Qualquer dúvida posta aí ....
- 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í ....
GOSTEI 0
Vander Carlos
02/03/2013
É 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.
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.
GOSTEI 0
William
02/03/2013
Dex acredito q seja problema na atribuição do valor para DBEdit, então tente assim:
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().
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().
GOSTEI 0
Vander Carlos
02/03/2013
Estou usando DataSource/Table.
Quando calculo o valor faço a atribuição assim:
edtValor.Text:= FloatToStr(total);
Quando calculo o valor faço a atribuição assim:
edtValor.Text:= FloatToStr(total);
GOSTEI 0
William
02/03/2013
Estou usando DataSource/Table.
Quando calculo o valor faço a atribuição assim:
edtValor.Text:= FloatToStr(total);
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?
GOSTEI 0
Vander Carlos
02/03/2013
Quando calculo ele atribui o valor normal.
Quando eu tento alterar o valor, assim que entro no DBEdit o campo fica em branco.
Quando eu tento alterar o valor, assim que entro no DBEdit o campo fica em branco.
GOSTEI 0