Problema com Data
Bom dia pessoal, meu problema é o seguinte: Estou fazendo um calculo entre duas datas (data2-data1) e salvando na tabela as duas datas e mais o resultado, mas bem gostaria que salvasse no domingo apenas. (ex: data2:=12/12/2008 e data1:=25/11/2008) então o sistema teria que salvar as datas [b:3a40a2ba1d]25/11/2008; 30/11/2008; 1/12/2008; 7/12/2008 e 12/12/2008;[/b:3a40a2ba1d] Bem é um fechamento semanal, tentei usar o DayOfTheWeek vou colocar o codigo fonte abaixo, mas a data soh salta a digita em data1 e data2, poderiam me ajudar? Grato desde já e abaixo o código fonte do botão que faz este cálculo:
[b:3a40a2ba1d]procedure TFcadLongaData.calcula;
Var
I :integer;
dia : array[1..7] of string;
resultado : integer;
n : Tdatetime;
data1, data2 : TDate;
Data : TDateTime;
Begin
data1 := StrToDate(MskInicial.Text);
data2 := StrToDate(MskFinal.Text)+1;
resultado := StrToInt(FloatToStr(data2 - data1));
EdtDias.Text := IntToStr(resultado);
Data := now;
n := now;
dia[1] := ´Segunda´;
dia[2] := ´Terça´;
dia[3] := ´Quarta´;
dia[4] := ´Quinta´;
dia[5] := ´Sexta´;
dia[6] := ´Sábado´;
dia[7] := ´Domingo´;
For I := 1 to resultado do
Begin
If DayOfTheWeek(n)= 7 Then
Begin
n := data1 + I;
edit6.Text := DateToStr(n);
next;
End;
End;[/b:3a40a2ba1d]
[b:3a40a2ba1d]procedure TFcadLongaData.calcula;
Var
I :integer;
dia : array[1..7] of string;
resultado : integer;
n : Tdatetime;
data1, data2 : TDate;
Data : TDateTime;
Begin
data1 := StrToDate(MskInicial.Text);
data2 := StrToDate(MskFinal.Text)+1;
resultado := StrToInt(FloatToStr(data2 - data1));
EdtDias.Text := IntToStr(resultado);
Data := now;
n := now;
dia[1] := ´Segunda´;
dia[2] := ´Terça´;
dia[3] := ´Quarta´;
dia[4] := ´Quinta´;
dia[5] := ´Sexta´;
dia[6] := ´Sábado´;
dia[7] := ´Domingo´;
For I := 1 to resultado do
Begin
If DayOfTheWeek(n)= 7 Then
Begin
n := data1 + I;
edit6.Text := DateToStr(n);
next;
End;
End;[/b:3a40a2ba1d]
Ricardoc
Curtidas 0
Respostas
Ricardoc
25/11/2008
Bem, isso é meio confuso mesmo, vou explicar detalhadamente, é um sistema de controle de longa data; Vamos usar o exemplo pegando a data de hoje como data inicial [b:27c8ad65bd]26/11/2008[/b:27c8ad65bd] que é quarta-feira, o sistema é obrigado a salvar esta data inicial, e a data final que podemos usar como [b:27c8ad65bd]12/12/2008[/b:27c8ad65bd] que será uma sexta-feira e o sistema também tem que salvar esta data como final, bem isso é simples mas o problema é que em todos os domingos venha incluir um novo cadastro dentro desta data sem perder a data inicial e final ficando assim:
26/11/2008 (data inicial / quarta) até 30/11/2008 (domingo) // Inclui um novo registro
01/12/2008 (segunda) ate 07/12/2008 (domingo) // Inclui um novo registro
08/12/2008 (segunda) ate 12/12/2008 (data final / sexta) // Inclui um novo registro
Acho que deu pra entender, mas o difícil é dizer ao sistema para fazer isso no exemplo acima, bem eu consigo inserir 3 registros mas ficam entre 26/11/2008 ate 12/12/2008 assim nas três vezes e não como esta em cima;
Poderiam me ajudar novamente? a obrigado aos que ajudaram e grato a todos e senão entenderam me avissem novamente!
26/11/2008 (data inicial / quarta) até 30/11/2008 (domingo) // Inclui um novo registro
01/12/2008 (segunda) ate 07/12/2008 (domingo) // Inclui um novo registro
08/12/2008 (segunda) ate 12/12/2008 (data final / sexta) // Inclui um novo registro
Acho que deu pra entender, mas o difícil é dizer ao sistema para fazer isso no exemplo acima, bem eu consigo inserir 3 registros mas ficam entre 26/11/2008 ate 12/12/2008 assim nas três vezes e não como esta em cima;
Poderiam me ajudar novamente? a obrigado aos que ajudaram e grato a todos e senão entenderam me avissem novamente!
GOSTEI 0