DATAS NO VISUAL BASIC.NET

MARCOSSFERREIRA 27/06/2011 08:23:49
#377804
Bom dia Galera, mais uma vez recorro a vocês para ajudar-me com um pequeno e tranquilo problema.
Como faço para calcular datas no visual basic . net. Por exemplo:
Tenho um data de calibração do material (DataCalibracao.text) e uma data de Validade da calibração (dataValCal.text) e por fim a data atual do sistema no dia calibração (DataHoje.text) com isso preciso dizer que quando a datavalcal.text menos a datahoje.text for menor que 1 entao a calibração venceu e eu nao deixarei a calibração seguir mas este fim eu sei fazer. So preciso mesmo deste calculo de datas.

Alguem pode me ajudar Obrigado. Utilizei MaskedTextBox para as datas.

Obrigado.
JONATHANSTECKER 27/06/2011 09:13:53
#377809
Resposta escolhida
Faça dessa forma:
[ô][ô][ô] <summary>
[ô][ô][ô] Retorna a diferença em dias entre duas datas
[ô][ô][ô] </summary>
[ô][ô][ô] <param name=[Ô]DataInicial[Ô]>Data inicial</param>
[ô][ô][ô] <param name=[Ô]DataFinal[Ô]>Data final</param>
[ô][ô][ô] <returns>Diferença em dias entre as duas datas</returns>
[ô][ô][ô] <remarks></remarks>
Function SubtraiDataDia(ByVal DataInicial As DateTime, ByVal DataFinal As DateTime) As String
Return CStr(DateDiff(DateInterval.Day, DataFinal, DataInicial))
End Function

If Me.SubtraiDataDia(CDate(Me.dataValCal.text), CDate(Me.DataCalibracao.text)) < 0 Then
MessageBox.Show([Ô]Calibração vencida![Ô])
End If

Dica: Use o controle DateTimePicker ao invés do MaskedTextBox, facilita para o usuário definir a data e para você tratar essa data definada.

Fonte: DIAS DE DIFERENCA ENTRE DUAS DATAS
MARCOSSFERREIRA 27/06/2011 09:46:38
#377813
Acho que não entendi muito bem, tem como traduzir para o meu sistema por gentileza?

Obrigado mesmo.
PEGUDO 27/06/2011 10:15:51
#377815
Cara, utilizando o exemplo do [txt-color=#e80000]JONATHANSTECKER[/txt-color], ficaria mais ou menos assim:
No click do botão você coloca

Dim Data1 As Date = MaskedTextBox1.Text
Dim Data2 As Date = MaskedTextBox2.Text
Dim Resultado As integer = SubtraiDataDia(Data1, Data2)

If Resultado < 0 then MsgBox([txt-color=#e80000][Ô]INSS - Infelizmente Não Podemos Socorrê-lo[Ô][/txt-color])


Se ainda tiver dificuldades, tenta este aqui:

        
Dim Data1 As Date = MaskedTextBox1.Text
Dim Data2 As Date = MaskedTextBox2.Text
Dim Dias1 As Integer = Data1.DayOfYear
Dim Dias2 As Integer = Data2.DayOfYear
Dim Resultado As Integer = Dias2 - Dias1

MsgBox(Resultado)
JONATHANSTECKER 27/06/2011 10:23:15
#377816
No exemplo anterior, criei uma função que retorna a diferença em dias entre duas datas. (Usei a função DateDiff para isso)

Veja o exemplo abaixo... Neste estou fazendo a mesma coisa, porém sem criar nenhuma função.
If CStr(DateDiff(DateInterval.Day, CDate(Me.dataValCal.text), CDate(Me.DataCalibracao.text))) < 0 Then
MessageBox.Show([Ô]Calibração vencida![Ô])
End If


Caso não entenda, poste a sua dúvida mais especifica, pois não sei o que você ão entendeu.
MARCOSSFERREIRA 27/06/2011 13:44:20
#377848
Dim Data1 As Date = MaskedTextBox1.Text
Dim Data2 As Date = MaskedTextBox2.Text
Dim Resultado As integer = SubtraiDataDia(Data1, Data2)

If Resultado < 0 then MsgBox([Ô]INSS - Infelizmente Não Podemos Socorrê-lo[Ô])

Fazendo este procedimento tenho o seguinte erro:
data1 value of [Ô]Date[ô] cannot be converted to [ô]interger[ô].
o mesmo para o data2
MARCOSSFERREIRA 27/06/2011 13:58:01
#377852
Muitoooo Obrigado Galera era exatamente isto aqui. Ficou perfeito. Obrigado mesmo.


If CStr(DateDiff(DateInterval.Day, CDate(Me.dataValCal.text), CDate(Me.DataCalibracao.text))) < 0 Then
MessageBox.Show([Ô]Calibração vencida![Ô])
End If
Tópico encerrado , respostas não são mais permitidas