RES: [delphi-br] Retornar numero de meses entre duas datas

2008-08-22 Por tôpico Luciano Calenzani Simões
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

2008-08-22 Por tôpico cicero
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

2008-08-21 Por tôpico Luciano Calenzani Simões
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

2008-08-21 Por tôpico Fernando Leal
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

2008-08-21 Por tôpico cicero
 
 

 
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

2008-08-21 Por tôpico Luciano Calenzani Simões
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]