PEGAR QUANTIDADE DE MESES
Bom dia! Pessoal, preciso de uma função que me retorne a diferenca de meses entre uma data, exemplo:
15/03/15 - 15/04/15 = 1
16/05/15 - 16/09/15 = 4
Bom a função deve seguir alguns criterios:
se data final igual a 0 então 0
se data final menor ou igual a data inicial então 0
ou seja, só vai pegar a quantidade de meses se existir essa diferença.
já dentei o DateDiff mas não consegui adapta-lo para a questão.
grato.
15/03/15 - 15/04/15 = 1
16/05/15 - 16/09/15 = 4
Bom a função deve seguir alguns criterios:
se data final igual a 0 então 0
se data final menor ou igual a data inicial então 0
ou seja, só vai pegar a quantidade de meses se existir essa diferença.
já dentei o DateDiff mas não consegui adapta-lo para a questão.
grato.
Bom dia, Colega...
Faz uns 9 ou 10 anos, não lembro ao certo. Na época eu usava muito o VB6. Fiz uma função para transformar datas em diversos formatos e uma outra pra calcular diferença em anos, meses e dias entre duas datas.
Acredita que ainda tem clientes lá das antigas (duas imobiliárias e uma oficina mecânica) que ainda usam aquele sistema? Funciona, ao menos.
Seguem os códigos em anexo.
A função que calcula a diferença entre datas (anos, meses e dias) considera perÃodo matemático e perÃodo comercial.
Exemplo:
de 05/07/2015 Ã 05/08/2015
Comercial é 1 mês (30 dias, pelas regras de mercado e código civil)
Matemático é 1 mês e 1 dia (porque julho tem 31 dias e para cálculo de juros este dia não pode ser ignorado)
é coisa antiga. Faz tempo que não mexo. Mas funciona bem até hoje. Poderá adaptar para suas necessidades.
Tudo de bom.
Faz uns 9 ou 10 anos, não lembro ao certo. Na época eu usava muito o VB6. Fiz uma função para transformar datas em diversos formatos e uma outra pra calcular diferença em anos, meses e dias entre duas datas.
Acredita que ainda tem clientes lá das antigas (duas imobiliárias e uma oficina mecânica) que ainda usam aquele sistema? Funciona, ao menos.
Seguem os códigos em anexo.
A função que calcula a diferença entre datas (anos, meses e dias) considera perÃodo matemático e perÃodo comercial.
Exemplo:
de 05/07/2015 Ã 05/08/2015
Comercial é 1 mês (30 dias, pelas regras de mercado e código civil)
Matemático é 1 mês e 1 dia (porque julho tem 31 dias e para cálculo de juros este dia não pode ser ignorado)
é coisa antiga. Faz tempo que não mexo. Mas funciona bem até hoje. Poderá adaptar para suas necessidades.
Tudo de bom.
IRENKO
Veja se é isso serve:
Dim dataInicio As Date
Dim dataFinal As Date
Dim diferencaMes As Integer
dataInicio = [Ô]16/05/15[Ô]
dataFinal = [Ô]16/09/15[Ô]
diferencaMes = IIf((dataFinal < dataInicial), 0, DateDiff([Ô]m[Ô], dataInicio, dataFinal))
Veja se é isso serve:
Dim dataInicio As Date
Dim dataFinal As Date
Dim diferencaMes As Integer
dataInicio = [Ô]16/05/15[Ô]
dataFinal = [Ô]16/09/15[Ô]
diferencaMes = IIf((dataFinal < dataInicial), 0, DateDiff([Ô]m[Ô], dataInicio, dataFinal))
ZEUZEBIO3, O ARQUIVO ESTA CORROMPIDO! dà PARA MANDAR OUTRO?
Colega Irenko...
Eu baixei o arquivo aqui para testar e funcionou certinho.
Mas vou mandar em formato .txt os dois arquivos então, quem sabe vai (é só copiar e colar em um .BAS)
Tudo de bom.
Eu baixei o arquivo aqui para testar e funcionou certinho.
Mas vou mandar em formato .txt os dois arquivos então, quem sabe vai (é só copiar e colar em um .BAS)
Tudo de bom.
Faltou a função TransformaEmData.
Segue.
Sua função é muito bacana, só que não estou sabendo usa-la!
coloquei uma data inicial e uma final:
dataInicio = [Ô]16/05/15[Ô]
dataFinal = [Ô]16/09/15[Ô]
MsgBox CalculaPeriodosComercialMatematico(dataInicio, dataFinal)
resultado é vazio.
coloquei uma data inicial e uma final:
dataInicio = [Ô]16/05/15[Ô]
dataFinal = [Ô]16/09/15[Ô]
MsgBox CalculaPeriodosComercialMatematico(dataInicio, dataFinal)
resultado é vazio.
Irenko...
A função exige ano no formato AAAA
ao invés de
Utilize assim:
o resultado será
Para você interessa apenas o primeiro piece (piece é algo que vem dos meus tempos de banco de dados da InterSystems Caché, ótimo banco de dados não SQL)
O segundo piece vem uma cor, que eu usava quando a conta estava vencida, a vencer ou quitada, o terceiro piece é a quantidade de anos, o quarto piece é a quantidade de meses, o quinto piece é a quantidade de dias e o sexto piece é a quantidade de dias corridos entre as datas.
Tudo de bom.
A função exige ano no formato AAAA
ao invés de
Citação:
dataInicio = [Ô]16/05/15[Ô]
dataFinal = [Ô]16/09/15[Ô]
Utilize assim:
Citação:dataInicio = [Ô]16/05/2015[Ô]
dataFinal = [Ô]16/09/2015[Ô]
o resultado será
Citação:Vencida a 4 Meses em perÃodo comercial (123 dias matemáticos)^&HFF&^0^4^0^123
Para você interessa apenas o primeiro piece (piece é algo que vem dos meus tempos de banco de dados da InterSystems Caché, ótimo banco de dados não SQL)
O segundo piece vem uma cor, que eu usava quando a conta estava vencida, a vencer ou quitada, o terceiro piece é a quantidade de anos, o quarto piece é a quantidade de meses, o quinto piece é a quantidade de dias e o sexto piece é a quantidade de dias corridos entre as datas.
Tudo de bom.
Desculpe ai cara, achei essa função muito interessante, mas acho q esta faltando é parte do codigo, por exemplo:
AnoBissexto
é uma variavel ou função? Essa esta faltando.
e tambem:
MesPorExtenso
Essa sua função resolveria algums problemas meus com data pois é um pequeno sistema de imobiliaria e como vc mesmo salientou no inicio, ainda esta rodando e se esta rodando é pq atende.
AnoBissexto
é uma variavel ou função? Essa esta faltando.
e tambem:
MesPorExtenso
Essa sua função resolveria algums problemas meus com data pois é um pequeno sistema de imobiliaria e como vc mesmo salientou no inicio, ainda esta rodando e se esta rodando é pq atende.
Certo...
Vou te passar as demais funções.
é que é um sistema antigo, para imobiliárias, umas funções chamam outras... enfim.
MesPorExtenso é só uma variável global, colocada em um módulo, da mesma forma que as demais funções (incluindo a função AnoBissexto)
Segue em anexo.
Vou te passar as demais funções.
é que é um sistema antigo, para imobiliárias, umas funções chamam outras... enfim.
MesPorExtenso é só uma variável global, colocada em um módulo, da mesma forma que as demais funções (incluindo a função AnoBissexto)
Segue em anexo.
Faça seu login para responder