Dá uma olhada nestes dois textos, neles você vai ter a solução do seu problema e entender mais sobre datas no Delphi. http://dn.codegear.com/article/33729 http://www.devmedia.com.br/articles/viewcomp.asp?comp=356
Mas não deixe de ler o help do Delphi que explica o porque o MonthsBetween está retornando "valores totalmente fora da realidade": Returns the approximate number of months between two specified TDateTime values. Call MonthsBetween to obtain the difference, in months, between two TDateTime values. Because months are not all the same length, MonthsBetween returns an approximation based on an assumption of 30.4375 days per month. Fractional months are not counted. Thus, for example, MonthsBetween reports the difference between Feb 1 and Mar 1 as 0. Depois dá uma olhada na função MonthSpan. Olha o que informa o help: Returns the approximate number of months, including fractions, between two specified TDateTime values. Call MonthSpan to obtain the difference, in months, between two TDateTime values. Because months are not all the same length, MonthsBetween returns an approximation based on an assumption of 30.4375 days per month. Unlike the MonthsBetween function, which does not report fractional "months", MonthSpan reports incomplete months as a fraction of an entire month Na verdade a solução vai depender da sua necessidade. Luciano Calenzani Simões ----- Mensagem original ---- De: Antonio Mateus <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Quinta-feira, 21 de Agosto de 2008 15:28:54 Assunto: [delphi-br] Retornar numero de meses entre duas datas Olá sou novo no delphi e estou com o seguinte problema, tenho 2 datas, uma inicial e outra final, gostaria que o programa me retornasse o numero de meses entre essas duas datas, ja tentei a função MonthsBetween sendo que a mesma me retorna valores totalmente fora da realidade, se alguem puder me ajudar eu ficarei muito agradecido ! -- Antonio Mateus Estudante de Sistemas de Informação Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]