Ir ao conteúdo

SOMAR ANO,MES,DIA A UMA DATA


paulommog

Posts recomendados

Postado

tenho essa função abaixo para somar ano,mes,dia à uma data, porém quando  o Mes a ser somado é março, sai uma diferença de 03 dias a mais na data final, alguem pode me dar uma força?.
 

beginTotDiasF := 30 * 360  -              DiaT      -              MesT * 30 -              AnoT * 360;  AnoF     := TotDiasF div 360;  TotDiasF := TotDiasF - AnoF * 360;  MesF     := TotDiasF div 30;  DiaF     := TotDiasF - MesF * 30;Edit3.Text := IntToStr(AnoF) + ' Ano(s), '+ IntToStr(MesF) + ' Mês(s), ' + IntToStr(DiaF) + ' Dia(s)';Edit4.Text := DateToStr( IncDay( IncMonth( IncYear(Date, AnoF), MesF ), DiaF) ) ;end;end;
Postado

@paulommog

 

 

O número de dias de cada um dos meses terá de ser levado em consideração. Uma função para determinar se o ano é bissexto também será necessária para fazer o incremento de um dia no mês de fevereiro, se for o caso. Você poderá preencher um array com 12 posições cada uma contendo o número de dias de cada mês para facilitar.

 

A minha sugestão é que você faça o incremento manual dos dias, dos meses e do ano. Por exemplo. Se você fornece a data 31/01/2014 e pede para adicionar um mês, o resultado deverá ser 28/02/2014. Note que você teria de verificar se o ano é bissexto. Se fosse, o resultado seria 29/02/2014. Outro exemplo. Data de entrada: 30/11/2013 e quer adicionar 3 meses. Você teria o mês 11 + 3 = 14, extrapolando 12 meses; isso significa que virou o ano. Então, você faria um incremento no ano (2013 + 1 = 2014) e faria 14 - 12 = 2. Bom, 2 é um valor de mês válido, não será mais necessário fazer ajustes no ano. Novamente, verifica-se se o ano agora 2014 é bissexto e apresente o último dia desse mês, já que não existe dia 30 de fevereiro. O mesmo procedimento para o incremento de dias e também para o ano.

 

Isso tudo poderá ser feito dentro de um laço de repetição para que os ajustes (incremento) de mês e ano possam ser feitos.

 

 

 

LNW

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!