manipular hora, junto com stringgrid
Boa tarde pessoal,
Seguinte, vou citar um exemplo;
O Valor de X é 15..
Preciso saber quantos X (15) precisam para fechar 20:00 da noite.
Se o valor é 40, ficaria
e assim por diante....
Sabendo a quantidade, eu não preciso deixar fixo as linhas do stringgrid (Rowcount)
No caso se eu deixar fixo, e o valor de X ser (40), vai passar o valor 20:00 do stringgrid, e voltar do 00:00 novamente.
Seguinte, vou citar um exemplo;
O Valor de X é 15..
Preciso saber quantos X (15) precisam para fechar 20:00 da noite.
de 08:000 até 20:00 (intervalo de 15 minutos) 08:15 08:30 08:45 09:00... total 49
Se o valor é 40, ficaria
08:00 08:40 09:20... total 19
e assim por diante....
Sabendo a quantidade, eu não preciso deixar fixo as linhas do stringgrid (Rowcount)
No caso se eu deixar fixo, e o valor de X ser (40), vai passar o valor 20:00 do stringgrid, e voltar do 00:00 novamente.
Unix
Curtidas 0
Respostas
Edilcimar
01/11/2007
determine a quantidade de linhas do stringgrid na hora da execução, se for 10, 20 ou 30 não importa, vc define na hora com stringgrid.rowcount := x
GOSTEI 0
Unix
01/11/2007
Esse é o problema, quero saber a quantidade antes.
Não expliquei direito...
Seguinte tenho um campo na base de dados que indica o tempo (todos os usuários podem mudar o valor, é individual).
No caso eu, sou o usuário unix e alterei o meu tempo é 15 minutos.
Quando eu abrir a minha agenda, o stringgrid precisa mostrar em cada linha separada (uma em baixo da outra) o valor incrementado com o tempo, até a última linhx 20:00.
Este valor preciso saber antes de abrir o formulário.
Porque o usuário fulano pode ter outro tempo, então eu gostaria de saber a quantidade de linhas de acordo com o tempo dele.
Um exemplo, se eu fixar 50 linhas, vai fechar certinho o número de linhas de acordo com o tempo.
Mas se eu mudar para 40 o tempo, vai passar das 20:00 até fechar o stringgrid, e passar para o próximo dia.
Não expliquei direito...
Seguinte tenho um campo na base de dados que indica o tempo (todos os usuários podem mudar o valor, é individual).
No caso eu, sou o usuário unix e alterei o meu tempo é 15 minutos.
Quando eu abrir a minha agenda, o stringgrid precisa mostrar em cada linha separada (uma em baixo da outra) o valor incrementado com o tempo, até a última linhx 20:00.
08:00 Cod Nome 08:15 Cod Nome 08:30 Cod Nome 08:45 Cod Nome
Este valor preciso saber antes de abrir o formulário.
Porque o usuário fulano pode ter outro tempo, então eu gostaria de saber a quantidade de linhas de acordo com o tempo dele.
Um exemplo, se eu fixar 50 linhas, vai fechar certinho o número de linhas de acordo com o tempo.
Mas se eu mudar para 40 o tempo, vai passar das 20:00 até fechar o stringgrid, e passar para o próximo dia.
GOSTEI 0
Unix
01/11/2007
Resumindo...
valor 15
de 08:00 até 20:00
Quantos 15 precisa para chegar até 20:00 ?
valor 40
de 08:00 até 20:00
Quantos 40 precisa para chegar até 20:00 ?
e assim por diante, vai ser dinamico pode ser qualquer valor..
Com horas não sei como funciona, como fazer um ´for´ em horas ?
Qualquer ajuda é bem-vinda
valeu
valor 15
de 08:00 até 20:00
Quantos 15 precisa para chegar até 20:00 ?
valor 40
de 08:00 até 20:00
Quantos 40 precisa para chegar até 20:00 ?
e assim por diante, vai ser dinamico pode ser qualquer valor..
Com horas não sei como funciona, como fazer um ´for´ em horas ?
Qualquer ajuda é bem-vinda
valeu
GOSTEI 0
José Henrique
01/11/2007
Unix,
Você deve dividir a diferença entre a hora final e a hora inicial pelo intervalo, ou seja:
(Hora Final - Hora Inicial)/Intervalo
Isto lhe dará a quantidade de intervalos. Lembre-se de, ao fazer os cálculos, usar as mesmas unidades (ou minutos ou horas).
Você deve dividir a diferença entre a hora final e a hora inicial pelo intervalo, ou seja:
(Hora Final - Hora Inicial)/Intervalo
Isto lhe dará a quantidade de intervalos. Lembre-se de, ao fazer os cálculos, usar as mesmas unidades (ou minutos ou horas).
GOSTEI 0
Unix
01/11/2007
Mas ele retorna a hora, e não a quantidade de intervalos...
GOSTEI 0
Edilcimar
01/11/2007
é só fazer a conta
hora inicial =08:00
hora final =09:00
intervalo =00:10
((9:00 - 8:00) * 60) para transformar em minutos
depois divida este resultado pelo intervalo, aí vc terá um inteiro que será a quantidade de linhas do stringgrid
hora inicial =08:00
hora final =09:00
intervalo =00:10
((9:00 - 8:00) * 60) para transformar em minutos
depois divida este resultado pelo intervalo, aí vc terá um inteiro que será a quantidade de linhas do stringgrid
GOSTEI 0
Unix
01/11/2007
volta 00:00:00
um exemplo:
[code]
var
x,y,z : TTime
t1 : String;
x:= ((StrToTime(´20:00´) - StrToTime(´08:00´)) * 60);
t1:= ´00:´+IntToStr(tconsulta);
z:= (x / StrToTime(t1));
ShowMessage(TimeToStr(z));
[code]
um exemplo:
[code]
var
x,y,z : TTime
t1 : String;
x:= ((StrToTime(´20:00´) - StrToTime(´08:00´)) * 60);
t1:= ´00:´+IntToStr(tconsulta);
z:= (x / StrToTime(t1));
ShowMessage(TimeToStr(z));
[code]
GOSTEI 0