RES: [delphi-br] Retornar numero de meses entre duas datas
Cicero, existe uma margem de erro nesta sua solução. Imagine que as datas são muito distantes entre si, tipo 01/01/2008 e 01/01/2018. Só aqui você estaria ignorando 2 meses e alguns dias, por causa dos meses com 31 dias e anos bisextos. Luciano Calenzani Simões - Mensagem original De: [EMAIL PROTECTED] [EMAIL PROTECTED] Para: delphi-br@yahoogrupos.com.br Enviadas: Quinta-feira, 21 de Agosto de 2008 15:56:45 Assunto: RES: [delphi-br] Retornar numero de meses entre duas datas faça a subtração das datas e divida por 30 Cícero Fernandes Eng. Eletricista Eng. de Segurança do Trabalho CREA-SC 27.958-0 P Antes de imprimir, pense em sua responsabilidade e compromisso com o MEIO AMBIENTE! 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]
RES: [delphi-br] Retornar numero de meses entre duas datas
hu ... bem lembrado ... fui simplista demais ... valeu .. Cícero Fernandes Eng. Eletricista Eng. de Segurança do Trabalho CREA-SC 27.958-0 P Antes de imprimir, pense em sua responsabilidade e compromisso com o MEIO AMBIENTE! _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Luciano Calenzani Simões Enviada em: sexta-feira, 22 de agosto de 2008 07:38 Para: delphi-br@yahoogrupos.com.br Assunto: RES: [delphi-br] Retornar numero de meses entre duas datas Cicero, existe uma margem de erro nesta sua solução. Imagine que as datas são muito distantes entre si, tipo 01/01/2008 e 01/01/2018. Só aqui você estaria ignorando 2 meses e alguns dias, por causa dos meses com 31 dias e anos bisextos. Luciano Calenzani Simões - Mensagem original De: [EMAIL PROTECTED] mailto:cicero%40fiosecabos.ind.br ind.br [EMAIL PROTECTED] mailto:cicero%40fiosecabos.ind.br ind.br Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br Enviadas: Quinta-feira, 21 de Agosto de 2008 15:56:45 Assunto: RES: [delphi-br] Retornar numero de meses entre duas datas faça a subtração das datas e divida por 30 Cícero Fernandes Eng. Eletricista Eng. de Segurança do Trabalho CREA-SC 27.958-0 P Antes de imprimir, pense em sua responsabilidade e compromisso com o MEIO AMBIENTE! Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new. http://br.new.mail.yahoo.com/addresses mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Retornar numero de meses entre duas datas
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]
RES: [delphi-br] Retornar numero de meses entre duas datas
Ola Antonio, Observer que a função MonthsBetween retorna um valor inteiro. Corrigindo ShowMessage(IntToStr(MonthsBetween(DataInicial, DataFinal))) Att.: _ Fernando Leal mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] Programador de Sistemas Coordenadoria de Informática Centro Universitário UNIFEMM 55(0xx31)2106-2114 http://www.unifemm.edu.br/ www.unifemm.edu.br _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Antonio Mateus Enviada em: quinta-feira, 21 de agosto de 2008 15:41 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Retornar numero de meses entre duas datas DataInicial:=MonthCalendar1.date; DataFinal:=MonthCalendar2.date; selecionei 01/08/2008 no primeiro calendario e 01/12/2008 no segundo calendario e coloquei ShowMessage(DatetoStr(MonthsBetween(DataInicial, DataFinal))); e a caixa de dialago me manda o valor 01/01/1900... nao entendi esse resultado... 2008/8/21 Rubem Nascimento da Rocha djpardalrocha@ mailto:djpardalrocha%40hotmail.com hotmail.com Como estão sendo passadas essas datas? Que valor é esse errado que a função retorna pra vc? Sds. To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br delphi-br%40yahoogrupos.com.br From: mateus.santana@ mailto:mateus.santana%40gmail.com gmail.com mateus.santana%40gmail.com Date: Thu, 21 Aug 2008 15:28:54 -0300 Subject: [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 __ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdo http://www.amigosdomessenger.com.br/ messenger.com.br/ -- Antonio Mateus Estudante de Sistemas de Informação 5º Periodo [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
RES: [delphi-br] Retornar numero de meses entre duas datas
faça a subtração das datas e divida por 30 Cícero Fernandes Eng. Eletricista Eng. de Segurança do Trabalho CREA-SC 27.958-0 P Antes de imprimir, pense em sua responsabilidade e compromisso com o MEIO AMBIENTE! _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Alessandro DUARTE de Moraes Enviada em: quinta-feira, 21 de agosto de 2008 15:43 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Retornar numero de meses entre duas datas Tem uma Unit chamada DateUtils que tem várias funções para manipulação de datas. Podes utilizar a função IncMonth da seguinte forma: procedure ContaMesesEntreDatas(DataInicial, DataFinal: TDate) : integer; var DataAuxiliar : TDate; begin NroDeMeses := 0; DataAuxiliar := DataInicial; while IncMonth(DataAuxiliar,1)DataFinal do begin Inc(NroDeMeses); DataAuxiliar := IncMonth(DataAuxiliar,1); end; result := NroDeMeses; end; Alessandro DUARTE de Moraes A.C. Santa Casa do Rio Grande. http://www.santacas http://www.santacasarg.com.br arg.com.br (53) 3233-7118 - Original Message - From: Antonio Mateus To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br Sent: Thursday, August 21, 2008 3:28 PM Subject: [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 [As partes desta mensagem que não continham texto foram removidas] -- E-mail Seguro Vetorial.net Mensagem classificada como NÃO-SPAM. Para classificar como SPAM, encaminhe para [EMAIL PROTECTED] mailto:spam%40vetorial.net net Chave de Identificação: 54568,48adb3fc84571742216817 [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Retornar numero de meses entre duas datas
Vai dar problema se fizer entre as seguinte datas: 01/02/2008 e 01/03/2008. Leia o e-mail que enviei que entenderá o porque. 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 16:28:52 Assunto: Re: [delphi-br] Retornar numero de meses entre duas datas agora sim me retornou o numero de meses correto... valeuz !! 2008/8/21 Fernando Leal [EMAIL PROTECTED] edu.br Ola Antonio, Observer que a função MonthsBetween retorna um valor inteiro. Corrigindo ShowMessage( IntToStr( MonthsBetween( DataInicial, DataFinal))) Att.: _ Fernando Leal 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]