AJUDA COM DATAS EM QTD DE MESES E DIAS

SACOFRITO 29/07/2011 17:10:40
#380325
Preciso de uma ajuda.
Tenho que bolar algo para locações.
Mas estou com problema no seguinte. Existirá a data de locação e data de devolução.
Certo, mas dependendo do produto o tipo do preço será em uma tabela de Preço/mes e preço/dia. A outra é preço por dia de locação(essa é tranquilo)

Entao preciso calcular quantos dias de aluguel(fiz com datediif).
Mas entre essas duas datas, preciso ver quantos meses e quantos dias tem.
Exemplo do dia 01/07/2011 até 03/08/2011
1 mes e 3 dias.

O problema sao com os meses que não fecham 31 dias.

Como resolvo isso?
SACOFRITO 29/07/2011 17:32:18
#380328
Nao funciona. Este cliente terá 2 tipos de preços. Um preço fixo por dia de locação. E outro por meses e dias. Entao preciso saber o exato de dias tem o mes para nao aumentar a quantia de dias.
Tipo ele tem um preço para 1 dia, outro pra 2, outro pra 3. E o mesmo com os meses.

Acho que deu pra entender.

Eu tenho uma função pra ver se o ano é bissexto. Meu problema é contar os dias. Estou meio confuso em como montar a funcao.
LLAIA 29/07/2011 20:22:40
#380334
Veja se este raciocínio te ajuda:

(dataEntrega - dataLocacao) / 30. Se houver resto na divisão, será a quantidade de dias, exemplo:

(dataEntrega - dataLocacao) = 59

Mes = 59 \ 30 = 1 [ô]divisão inteira

Dias = 59 Mod 30 = 29

Aí depois vc faz a concatenação. O único problema aí seria fevereiro, pois se fevereiro tiver 28 dias e o aluguel for feito dia 1º de fevereiro, e a entrega for feita no dia 2 de março, o sistema só pegará 1 mês de locação.
EDERMIR 29/07/2011 21:38:44
#380344
Tendo em vista que o mes conclui no mesmo dia:

Wdatafim = DateAdd([Ô]d[Ô], -59, Date)
Wmeses = DateDiff([Ô]m[Ô], Wdatafim, Date)
Wmesfinal = DateAdd([Ô]m[Ô], Wmeses, Wdatafim)
If Wmesfinal > Date Then
Wmeses = Wmeses - 1
Wmesfinal = DateAdd([Ô]m[Ô], Wmeses, Wdatafim)
End If
Wdias = DateDiff([Ô]d[Ô], Wmesfinal, Date)
Form1.Caption = Wmeses & [Ô] -> [Ô] & Wdias
SACOFRITO 29/07/2011 23:23:38
#380348
Gente, meu raciocinio esta do mesmo jeito que o de voces. Considerar que um mes possui 30 dias.
Preciso ligar no cliente e confirmar isto, pois meu chefe aqui me passou complicado.
Eu fiz uma pergunta que ele nao tinha pensado e o peguei na curva.

Amanha vou continuar a programar isto e vou concluir considerando todos os meses como 30 dias.
Obrigado por enquanto. Se for considerar o mes como 30 dias consigo concluir numa boa.

Abraços a todos !
Tópico encerrado , respostas não são mais permitidas