SOMAR DIAS EM UMA DETERMINADA DATA

ALTAIR148 10/04/2011 09:00:38
#370977
Bom dia,

Tenho 2 campos em meu form e gostaria de fazer o seguinte, os dois são datas, eu queria pegar o primeiro dia do mes, e o outro o último dia do mês.
Ex.:
Campo01: 01/04/2011
Campo02: 30/04/2011

Obrigado
RODRIGOFERRO 10/04/2011 10:13:06
#370978
Resposta escolhida
Somar ou obter ? segue as funções..

    Private Function GetLastDayInMonthDate(ByVal dtDate As Date) As Date

Return DateSerial(dtDate.Year, dtDate.Month + 1, 0)

End Function


Abraços
ALTAIR148 10/04/2011 10:25:09
#370980
Para ficar mais facil eu consigo pegar o primeiro dia do mês, como que eu faço por exemplo para somar uma determinada quantidade de dias.
data inicial: 01/04/2011 + 30 dias, a data final seria 30/04/2011

Obrigado.


RODRIGOFERRO 10/04/2011 10:37:38
#370982
Pra pegar o primeiro dia do mes de uma seguinte data use abaixo..

    Private Function GetFirstDayInMonthDate(ByVal dtDate As Date) As Date

Return New DateTime(dtDate.Year, dtDate.Month, 1)

End Function


para somar dias a uma data use o adddays

    Private Function SomarDias(ByVal dtDate As Date, ByVal intDias As Integer) As Date

Return dtDate.AddDays(intDias)

End Function


Abraços
ALTAIR148 10/04/2011 10:42:59
#370983
Gente desculpem a pergunta, mas ainda não sei como implementar essa funções em meu código. Como ficaria para somar os dias?
RODRIGOFERRO 10/04/2011 10:48:26
#370984
Adicione 3 DateTimePicker ao form

dtpInicial // que vai servir de base para as outras datas
dtpComeco // que vai receber o primeiro dia do mes
dtpFim // que ira receber o ultimo dia do mes

o evento ValueChanged do dtpInicial ficara assim

    Private Sub dtpInicial_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtpInicial.ValueChanged

dtpFim.Value = GetLastDayInMonthDate(dtpInicial.Value)
dtpComeco.Value = GetFirstDayInMonthDate(dtpInicial.Value)

End Sub


Abraços
ALTAIR148 10/04/2011 13:50:01
#370992
Muito obrigado Zerocall, exatamente o que eu precisava.

Abraços

Obrigado
Tópico encerrado , respostas não são mais permitidas