Programa de Calculo de Vencimento
Olá a todos da lista vim por meio desta para esclarecer o meu ploblema.
Tenho 3 TDateTimePicker Chamado Mês/Ano_Inicial e Mês/Ano_Final com propiedade format =´MM/yyyy´ e queria que quando eu selecionasse o mes/ano inicial e o Mes/Ano final ele faria o calculo do vencimento entre eles.
E outro TDateTimePicker chamado dia_da_semana com propiedade format=´dddd´ que receberia os dias da semana e quando selecionar um dia da semana o vencimento caíra sempre nele.
Por exemplo :
Mês/Ano Inicial : 01/2004
Mês/AnoFinal:03/2004
Dia da Semana : Segunda - Feira
Dentro da Dbgrid ficaria assim o resultado :
Nº Carnê : Vencimento : Valor :
1 05/01/2004 R$ 10,00
2 02/02/2004 R$ 10,00
3 01/03/2004 R$ 10,00
OBS: O Banco de dados se Chama Carnê.DB
E possui os seguintes campos.
Codigo (+) *
N_carnê (I) *
Mês_Ano (A-6)*
Dt_venc (D)
Cod_Socio (I)
Nome_Socio (A-6)
Cod_Preço (I)
Vl_preço ($)
Obrigado.
Tenho 3 TDateTimePicker Chamado Mês/Ano_Inicial e Mês/Ano_Final com propiedade format =´MM/yyyy´ e queria que quando eu selecionasse o mes/ano inicial e o Mes/Ano final ele faria o calculo do vencimento entre eles.
E outro TDateTimePicker chamado dia_da_semana com propiedade format=´dddd´ que receberia os dias da semana e quando selecionar um dia da semana o vencimento caíra sempre nele.
Por exemplo :
Mês/Ano Inicial : 01/2004
Mês/AnoFinal:03/2004
Dia da Semana : Segunda - Feira
Dentro da Dbgrid ficaria assim o resultado :
Nº Carnê : Vencimento : Valor :
1 05/01/2004 R$ 10,00
2 02/02/2004 R$ 10,00
3 01/03/2004 R$ 10,00
OBS: O Banco de dados se Chama Carnê.DB
E possui os seguintes campos.
Codigo (+) *
N_carnê (I) *
Mês_Ano (A-6)*
Dt_venc (D)
Cod_Socio (I)
Nome_Socio (A-6)
Cod_Preço (I)
Vl_preço ($)
Obrigado.
Pellegrini
Curtidas 0
Respostas
Thomaz_prg
08/06/2004
uma função para ver em quantas parcelas o valor deveria ser dividido você poderia fazer da seguinte forma:
A função acima retornaria a quantidade de parcelas que o valor seria dividido.
Para saber a data correta você poderia fazer o seguinte:
O parametro usado na função abaixo é um valor inteiro representando o dia da semana. Por exemplo domingo=1, segunda=2, etc.
A função abaixo retorna a data em que cair o dia da semana escolhido, no caso, o primeiro dia.
Exemplo: retdata(2,m), retornaria a data da primeira segunda do mes [b:7a7cbdd68c]m[/b:7a7cbdd68c]
Acho que é isso.Qualquer coisa, poste sua dúvida e tentaremos ajudá-lo.
function ver_parcelas( mesano_ini, mesano_fim: string ):integer; var difparc, ia, id, fa, fd:integer; begin result:=0; id:=strtoint( copy( mesano_ini , 1 , 2) ); //transf.o dia em integer fd:=strtoint( copy( mesano_fim, 1 , 2) ); ia:=strtoint( copy( mesano_ini , 3 , 4) ); //transf. o ano em integer fa:=strtoint( copy( mesano_fim, 3 , 4) ); while (id < fd) and (ia<=fa) do begin result:=result+1; id:=id+1 if id>12 then begin id:=1; ia:=ia+1; end; end; end;
A função acima retornaria a quantidade de parcelas que o valor seria dividido.
Para saber a data correta você poderia fazer o seguinte:
O parametro usado na função abaixo é um valor inteiro representando o dia da semana. Por exemplo domingo=1, segunda=2, etc.
A função abaixo retorna a data em que cair o dia da semana escolhido, no caso, o primeiro dia.
Exemplo: retdata(2,m), retornaria a data da primeira segunda do mes [b:7a7cbdd68c]m[/b:7a7cbdd68c]
func retdata( dia:integer; mesano:string ):date; var i:integer; d:string begin i:=1; d:=inttostr(i)+´/´+copy(mesano,1,2)+´/´+copy(mesano,3,4); while dayofweek(strtodate(d))<>dia do begin i:=i+1; d:=inttostr(i)+´/´+copy(mesano,1,2)+´/´+copy(mesano,3,4); end; result:=strtodate(d); end;
Acho que é isso.Qualquer coisa, poste sua dúvida e tentaremos ajudá-lo.
GOSTEI 0