Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) contar dias do Ano e inserir mes e dia da semana


rebotea

Pergunta

Boas amigos

estou tentando fazer um sistema que onde insiro o Ano e Obtenho a quantidade de dias que esse ano tem e desejava em seguida inserir na base de dados esse numero de dias na tabela/coluna.Dias_ano(registo 1....365) Year:=StrToInt(ano.Text);

diasano.Text:= IntToStr( DaysInAYear(Year) );

ao mesmo tempo na coluna Ano_Mes adiciona o mes "imaginamos o mes de janeiro que são os primeiros 31 dias" por sua vez na coluna dias da semana informa por extenso .

diasAno| Mes |diames |dia semana |

1 | janeiro | 1 |Segunda |

2 | janeiro | 2 | Terça |

.........................................................................................

365 | Dezembro | 31 | Segunda |

Obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Basta usar esse exemplo que voce consegue fazer o que esta querendo

procedure TForm1.DateEdit1Change(Sender: TObject);
var
  data  : TDateTime;
  dia    : array[1..7] of string;

begin
  dia[1] := 'Domingo';
  dia[2] := 'Segunda-feira';
  dia[3] := 'Terça-feira';
  dia[4] := 'Quarta-feira';
  dia[5] := 'Quinta-feira';
  dia[6] := 'Sexta-feira';
  dia[7] := 'Sábado';

  data := DateEdit1.Date;

  ShowMessage( 'Hoje é '+dia[ DayOfWeek( data ) ] );
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado

Essa parte ai tudo bem mas como poderei inserir os dados relacionados nos respectivos registos!

com numero de dia de 1....365 e de janeiro a Dezembro com o dia da semana.. segunda a domingo..

como poderei fazer tipo abaixo!!!!!!!!!!

procedure TPlaneamento.Button1Click(Sender: TObject);

var x: Integer;

var Y: Integer;

var i: Integer;

begin

inherited;

Year:=StrToInt(ano.Text);

diasano.Text:= IntToStr( DaysInAYear(Year) );

i =(FormatDateTime('dddd',Now));

j =(IntToStr( DaysInAMonth(Year,Month)));

frmDados.Planeamento.First;

for x := 1 to (diasano.value-1 ) do

frmDados.Planeamento.Append;

DBNumberEditEh1 .value:=X;

frmDados.Planeamento.edit;

frmDados.Planeamento.FieldByName('numerodiasAno').value:= x ;

frmDados.Planeamento.FieldByName('dia_mes').value:= j ;

frmDados.Planeamento.FieldByName('dia_extenso').value:= i;

frmDados.Planeamento.post;

frmDados.Planeamento.next;

end;

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, fiquei a manhã inteira quebrando a cabeça com isso, estava dando errado, no fim descobri que era uma coisa estúpida que eu estava fazendo errado!

Que seja... segue aí o executável com a fonte inclusa pra você dar uma olhada!

http://www.4shared.com/file/vp-s2AwP/pegadias.html

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui com o codigo abaixo agora o problema esta

tenho uma adoquery que me tem os anos e uma tabela Detail que tem os campos diasAno,etc. mas não esta indexando conforme foi escrito na base dados porque!

Obrigado

Var

I, X : Integer;

Data : TDateTime;

DiaAno, Mes, DiaMes, DiaSemana : TStringList;

begin

inherited;

Year:=StrToInt(ano.Text);

I := DaysInAYear(Year);

Data := EncodeDate(Year, 01, 01);

DiaAno := TStringList.Create;

Mes := TStringList.Create;

DiaMes := TStringList.Create;

DiaSemana := TStringList.Create;

for X := 1 to I -1+1 do

begin

DiaAno.Add(IntToStr(X));

Mes.Add(FormatDateTime('mmmm',Data));

DiaMes.Add(IntTostr(DayOfTheMonth(Data)));

DiaSemana.Add(FormatDateTime('dddd',Data));

Data := Data + 1;

end;

for I := 0 to DiaAno.Count -1 do

begin

Planeamento.Append;

Planeamento.FieldByName('numerodiasAno').value:=DiaAno.Strings;

Planeamento.FieldByName('mes').value:=Mes.Strings;

Planeamento.FieldByName('dia_mes').value:=DiaMes.Strings;

Planeamento.FieldByName('dia_semana').value:=DiaSemana.Strings;

end;

FreeAndNil(DiaAno);

FreeAndNil(Mes);

FreeAndNil(DiaMes);

FreeAndNil(DiaSemana);

end;

Editado por rebotea
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...