AJUDA COM DATAS EM QTD DE MESES E DIAS
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?
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?
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.
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.
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.
(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.
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
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 !
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