CONVERTER DATA EM NÊMERO

MANOELACFILHO 08/04/2014 10:46:47
#437019
Olá Amigos.

Preciso de ajuda. Tenho que converter uma data em número. Isso é muito fácil no Excel, mais em VB não sei como fazer. Exemplo.

Para data 25/03/2014 convertida em número no Excel temos 41723.

No meu código, tenho a seguinte instrução:

Dim dia As String = String.Format([Ô]{dd/MM/yyyy, 0}[Ô], DateTime.Now)

preciso converter a variável dia em numero, como no Excel, e depois converte-la novamente em data.

Alguém pode me ajudar?

Abraços.

MARCELO.TREZE 08/04/2014 12:03:06
#437023
Resposta escolhida
dateserial é a função que faz isso

veja

DateSerial(ano,mes,dia)


exemplo

MsgBox CDbl(DateSerial(2014, 3, 25))


MARCELO.TREZE 08/04/2014 12:16:22
#437026
ps: esqueci de perguntar qual visual studio está usando se for superior ao vb2005.

para converter a data para serial usa-se
Dim S As Double = DateSerial(2014, 3, 25).ToOADate


para converter serial para data
Dim d As Date = Date.FromOADate(S)

MANOELACFILHO 09/04/2014 13:10:03
#437087
Fala Marcelo, obrigado pela ajuda.

Mais então terei que separar a string em dia, mês e ano??

 
Dim DIA As String = String.Format([Ô]{0:dd/MM/yyyy}[Ô], DateTime.Now) [ô][txt-color=#e80000]AQUI TENHO, POR EXEMPLO 09/04/2014[/txt-color]
Dim NUMBER As Double

NUMBER = DateSerial(????, ????, ????).ToOADate() [txt-color=#e80000][ô]dai como que ficaria se o data está como string na variável DIA[/txt-color]


Será que não tem uma maneira mais fácil de fazer isso?

Sds,
MANOELACFILHO 09/04/2014 13:30:17
#437088
Matei Camarada!!!!

Com sua ajuda e um pouquinho mais de internet consegui fazer.

Segue código para quem precisar.

  
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
Dim DIA As String = String.Format([Ô]{0:dd/MM/yyyy}[Ô], DateTime.Now)
Dim NUMBER As Double
Dim NEWDATE As String
NUMBER = DateSerial(Year(Now.Date), Month(Now.Date), Now.Day).ToOADate
NEWDATE = Date.FromOADate(NUMBER)
MessageBox.Show([Ô]DIA DE HOJE = [Ô] & DIA & vbNewLine & [Ô]DATA SERIAL = [Ô] & NUMBER & vbNewLine & [Ô]DATA RETORNO = [Ô] & NEWDATE, [Ô]Sistema de Cadastro Informa![Ô], MessageBoxButtons.OK, MessageBoxIcon.Stop)
End Sub


Abraços.
MARCELO.TREZE 09/04/2014 13:46:22
#437090
assim

Dim DIA As String = String.Format([Ô]{0:dd/MM/yyyy}[Ô], DateTime.Now) [ô]AQUI TENHO, POR EXEMPLO 09/04/2014
Dim dt As DateTime = Convert.ToDateTime(DIA)

Dim Y As Integer = dt.Year.ToString
Dim M As Integer = dt.Month.ToString
Dim D As Integer = dt.Day.ToString

MsgBox(DateSerial(Y, M, D).ToOADate()) [ô]dai como que ficaria se o data está como string na variável DIA
Tópico encerrado , respostas não são mais permitidas