Fellipe Henrique wrote: > Olá Marcos, obrigado pela resposta, o problema, é que nem sempre será 30 > dias... as vezes o usuário pode por 15 dias... > > fiz este pequeno exemplo pra mostrar o problema: > > var > i:integer; > LastDate: TDate; > begin > LastDate := Date; > for i := 1 to 100 do > begin > ListBox1.Items.Add(FormatDateTime('dd/mm/yyyy', (LastDate))); > LastDate := (LastDate + 30); > end; > > Repare nas datas como elas ficam totalmente malucas.
Óbvio. Um ano, 12 meses, tem 30*12 + 5,25 dias. Estes 5,25 é que estão te perturbando a cada 12 meses. Use alguma lógica para equilibrar, tal como somar 5 dias a cada 360 dias, e mais 1 dia a cada 4 anos, ou então 1 dia a mais a cada 60 dias e um a menos a cada ano. -- Joao Morais