manipular hora, junto com stringgrid

Delphi

01/11/2007

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.

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

Unix

Curtidas 0

Respostas

Edilcimar

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

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.

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

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


GOSTEI 0
José Henrique

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).


GOSTEI 0
Unix

Unix

01/11/2007

Mas ele retorna a hora, e não a quantidade de intervalos...


GOSTEI 0
Edilcimar

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


GOSTEI 0
Unix

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]


GOSTEI 0
POSTAR