funcao format
Salve galera,
Mais uma vez recorro aos amigos, estou tentando fazer um programinha para calcular horas extras, tenho um campo HENTRADA e HSAIDA e QTDHORAS ( todos TIMESTAMP no firebird).
1º gostaria de aprender como pegar apenas parte de uma string tipo se eu usar TimeToStr(HENTRADA) me retornar ao inves de 08:20:00 apenas 08 ou 20.
2º alguem tem uma dica para simplificar tipo entrada 10:00 saida 18:30 8,5 horas multiplico pelo valor da hora ex: 10,00 = 10.
Valeu galera.
Mais uma vez recorro aos amigos, estou tentando fazer um programinha para calcular horas extras, tenho um campo HENTRADA e HSAIDA e QTDHORAS ( todos TIMESTAMP no firebird).
1º gostaria de aprender como pegar apenas parte de uma string tipo se eu usar TimeToStr(HENTRADA) me retornar ao inves de 08:20:00 apenas 08 ou 20.
2º alguem tem uma dica para simplificar tipo entrada 10:00 saida 18:30 8,5 horas multiplico pelo valor da hora ex: 10,00 = 10.
Valeu galera.
Sidimarsilva
Curtidas 0
Respostas
Sidimarsilva
30/07/2008
Salve galera,
Mais uma vez recorro aos amigos, estou tentando fazer um programinha para calcular horas extras, tenho um campo HENTRADA e HSAIDA e QTDHORAS ( todos TIMESTAMP no firebird).
1º gostaria de aprender como pegar apenas parte de uma string tipo se eu usar TimeToStr(HENTRADA) me retornar ao inves de 08:20:00 apenas 08 ou 20.
2º alguem tem uma dica para simplificar tipo entrada 10:00 saida 18:30 8,5 horas multiplico pelo valor da hora ex: 10,00 = [b:9d51cd96eb]80[/b:9d51cd96eb] hehehe.
Valeu galera.
GOSTEI 0
Sidimarsilva
30/07/2008
Ninguem nada...
se me puderem me indicar um tutorial ja ajudaria d+, to com umas 20 apostilas procurando mais o tempo ta acabando. please. :cry:
se me puderem me indicar um tutorial ja ajudaria d+, to com umas 20 apostilas procurando mais o tempo ta acabando. please. :cry:
GOSTEI 0
Fabianosales
30/07/2008
1º gostaria de aprender como pegar apenas parte de uma string tipo se eu usar TimeToStr(HENTRADA) me retornar ao inves de 08:20:00 apenas 08 ou 20.
Adicione a unit DateUtils na ´uses´ de sua unit e escreva função:
type TTimePart = (tpHora, tpMinuto, tpSegundo, tpMilisegundo); (...) function GetTimePart(const time: string; part: TTimePart): string; var t: TDateTime; hora, minuto, segundo, milisegundo: word; begin if TryStrToTime(time, t) then begin DecodeTime(t, hora, minuto, segundo, milisegundo); case part of tpHora : result := IntToStr(hora); tpMinuto : result := IntToStr(minuto); tpSegundo : result := IntToStr(segundo); tpMilisegundo: result := IntToStr(milisegundo); end; end else raise EInvalidCast.Create(Format(´A string "¬s" não contém uma data válida.´, [time])); end;
E pra usá-la:
ShowMessage(´Hora = ´ + GetTimePart(´10:23:25´, tpHora));
ShowMessage(´Minutos = ´ + GetTimePart(´10:23:25´, tpMinuto));
ShowMessage(´Segundos = ´+ GetTimePart(´10:23:25´, tpSegundo));
ShowMessage(´Milissegundos = ´+ GetTimePart(´10:23:25´, tpMilisegundo));
GOSTEI 0
Marco Salles
30/07/2008
2º alguem tem uma dica para simplificar tipo entrada 10:00 saida 18:30 8,5
voce quer é uma forma de transformar HMS em Valor Decimal não é isto
Assim
1 hora em decimal seria 1
1Hora e 30Minutos em decimal seria 1,5 etc...
function TransHmsDecimal(he,hs:TTime):real; begin result:=(hs-he)*24; end;
procedure TForm1.Button2Click(Sender: TObject); var he,hs:Ttime; begin he:=strtotime(´10:00:00´); hs:=strtotime(´11:00:00´); showmessage(floattostr(RoundTo(TransHmsDecimal(he,hs),-2))); end;
[b:7bafbb4fe1]Declare Math[/b:7bafbb4fe1]
GOSTEI 0
Sidimarsilva
30/07/2008
Galera, mais uma vez muito obrigado vcs me pouparam muuuuuiiitaaaa leitura hehehe.
Tudo perfeito agora to tentando montar uma unica Unit pra minhas funcões pra nao ficar repetindo sempre. mais ai ja é uma outra conversa.
valeu mesmo pessoal. t+ :D
Tudo perfeito agora to tentando montar uma unica Unit pra minhas funcões pra nao ficar repetindo sempre. mais ai ja é uma outra conversa.
valeu mesmo pessoal. t+ :D
GOSTEI 0