funcao format
30/07/2008
0
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
Posts
30/07/2008
Sidimarsilva
01/08/2008
Sidimarsilva
se me puderem me indicar um tutorial ja ajudaria d+, to com umas 20 apostilas procurando mais o tempo ta acabando. please. :cry:
01/08/2008
Fabianosales
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:
01/08/2008
Marco Salles
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]
01/08/2008
Sidimarsilva
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
Clique aqui para fazer login e interagir na Comunidade :)