CONVERTER DATA LONGA PRA DATA CURTA?
Dim sDateString As String, sTimeString As String
Dim dDate As Date, dTime As Date
sDateString = "terça-feira, 4 de setembro de 2007"
'ou
'sDateString = "February 12, 1969"
'>> Ambos dão pau de Type Mismatch
dDate = CVDate(sDateString)
dDate = CVDate(sDateString)
Converter hora longa dá certo:
sTimeString = "4:35:47 AM"
dTime = CDate(sTimeString)

Dim dDate As Date, dTime As Date
sDateString = "terça-feira, 4 de setembro de 2007"
'ou
'sDateString = "February 12, 1969"
'>> Ambos dão pau de Type Mismatch
dDate = CVDate(sDateString)
dDate = CVDate(sDateString)
Converter hora longa dá certo:
sTimeString = "4:35:47 AM"
dTime = CDate(sTimeString)

ja tentou
Format(Now, "dddd, DD/MM/YYYY")' dia corrente, Dia /mes/ano
Format(Now, "dddd, DD") & " de " & Format(Now, "mmMM") & " de " & Format(Now, "YYYY")' dia corrente, dia mes por estenso, ano
format(now,"MMMM DD, YYYY")
ve se te ajuda.
Format(Now, "dddd, DD/MM/YYYY")' dia corrente, Dia /mes/ano
Format(Now, "dddd, DD") & " de " & Format(Now, "mmMM") & " de " & Format(Now, "YYYY")' dia corrente, dia mes por estenso, ano
format(now,"MMMM DD, YYYY")
ve se te ajuda.
Oi, o que eu quero é converter uma data longa para formato curto.
E o seu esquema não converte e qdo joga pra uma variável Date, dá erro "Type Mismatch"
.
Enfim tem jeito ou não
?
[txt-color=#3333ff] Dim sDateString As String, sTimeString As String
Dim dDate As Date, dTime As Date
sDateString = "terça-feira, 4 de setembro de 2007"
dDate = Format$(sDateString, "dd/mm/yy hh:nn:ss")
Debug.Print Format$(sDateString, "dd-mm-yy hh:nn:ss")
sTimeString = "4:35:47 am"
dTime = CDate(sTimeString)
Debug.Print dTime[/txt-color]
Grato.
E o seu esquema não converte e qdo joga pra uma variável Date, dá erro "Type Mismatch"

Enfim tem jeito ou não

[txt-color=#3333ff] Dim sDateString As String, sTimeString As String
Dim dDate As Date, dTime As Date
sDateString = "terça-feira, 4 de setembro de 2007"
dDate = Format$(sDateString, "dd/mm/yy hh:nn:ss")
Debug.Print Format$(sDateString, "dd-mm-yy hh:nn:ss")
sTimeString = "4:35:47 am"
dTime = CDate(sTimeString)
Debug.Print dTime[/txt-color]
Grato.
Cara.. creio eu que não tenha jeito com o format.
O que vc pode fazer é o seguinte.
Cria uma função que le a string data e a converta para data curta.
O que vc pode fazer é o seguinte.
Cria uma função que le a string data e a converta para data curta.
Ok, só dá certo mesmo se data estiver no mÃÂÂnimo num formato:
"12 maio 2005"
"may 12 2005"
Com dia da semana, num vai de jeito algum !!
Mas converter qualquer data para "dia da semana, dia de mes de ano hora:minuto:segundo" , faz numa boa !!
Exemplos:
debug.Print Format$(#31/1/2001 5:04:23 PM#,"dddddd hh:nn:ss")
quarta-feira, 31 de janeiro de 2001 17:04:23
debug.Print Format$(now,"dddddd hh:nn:ss")
quarta-feira, 5 de setembro de 2007 17:21:37
Será que os programadores do VB x versão num pensaram nisto não [S61], fazer a conversão da volta ?
Até com VB.Net pelo jeito tb. não tem
, já fucei todo wikipedia do VB.Net 2005 e nada achei também!!
"12 maio 2005"
"may 12 2005"
Com dia da semana, num vai de jeito algum !!
Mas converter qualquer data para "dia da semana, dia de mes de ano hora:minuto:segundo" , faz numa boa !!
Exemplos:
debug.Print Format$(#31/1/2001 5:04:23 PM#,"dddddd hh:nn:ss")
quarta-feira, 31 de janeiro de 2001 17:04:23
debug.Print Format$(now,"dddddd hh:nn:ss")
quarta-feira, 5 de setembro de 2007 17:21:37
Será que os programadores do VB x versão num pensaram nisto não [S61], fazer a conversão da volta ?
Até com VB.Net pelo jeito tb. não tem

VilmarBR,
Com certeza o que eu vou postar para você é uma gambiarra muito grande rs
Mas funciona rs...então ve ai ce vc precisar mesmo rs... a Funcção está sem consistencias do tipo (30/02) mas até ai é fácil inserir elas.
Basta chamar a funcção e passar toda a string da datalonga...
eu testei com:
quarta-feira, 5 de setembro de 2007
terça-feira, 4 de setembro de 2007
e funcionou, não coloquei as horas mas é simples tambem
Com certeza o que eu vou postar para você é uma gambiarra muito grande rs
Mas funciona rs...então ve ai ce vc precisar mesmo rs... a Funcção está sem consistencias do tipo (30/02) mas até ai é fácil inserir elas.
Basta chamar a funcção e passar toda a string da datalonga...
eu testei com:
quarta-feira, 5 de setembro de 2007
terça-feira, 4 de setembro de 2007
e funcionou, não coloquei as horas mas é simples tambem
Public Function ConverterDataLonga(data As String)
Dim s As String
s = data
s = Replace(s, "segunda-feira,", "")
s = Replace(s, "terça-feira,", "")
s = Replace(s, "quarta-feira,", "")
s = Replace(s, "quinta-feira,", "")
s = Replace(s, "sexta-feira,", "")
s = Replace(s, "sábado,", "")
s = Replace(s, "domingo,", "")
s = Replace(s, "de", "")
s = Replace(s, "janeiro", "1")
s = Replace(s, "fevereiro", "2")
s = Replace(s, "março", "3")
s = Replace(s, "abril", "4")
s = Replace(s, "maio", "5")
s = Replace(s, "junho", "6")
s = Replace(s, "julho", "7")
s = Replace(s, "agosto", "8")
s = Replace(s, "setembro", "9")
s = Replace(s, "outubro", "10")
s = Replace(s, "novembro", "11")
s = Replace(s, "dezembro", "12")
s = Replace(s, " ", "/")
Dim d As Date
data = s
MsgBox data
End Function
[S42] Legal Orlando.
Eu já tinha conseguido fazer umas gambis separando toda a data em partes com função Split e juntando as partes do Array criado, formando uma data curta
com estas partes.
No momento, para contornar esta limitação das versões VBs, só mesmo fazendo gambis (POG: programação orientada a gambiarras) ! [S25]
Eu já tinha conseguido fazer umas gambis separando toda a data em partes com função Split e juntando as partes do Array criado, formando uma data curta
com estas partes.
No momento, para contornar esta limitação das versões VBs, só mesmo fazendo gambis (POG: programação orientada a gambiarras) ! [S25]
Uma gambiarra um pouquinho mais profissional:
Lembrando que o mérito do Ponto é do LANDOSP, fiz minha função em cima da lógica utilizada por ele.
Public Function ConverterDataLonga(data As String) as String
For i = 1 To 12
data = Replace(data, MonthName(i), i)
Next
For i = 1 To 7
data = Replace(data, WeekdayName(i) & ",", "")
Next
data = Replace(data, " de ", "/")
ConverterDataLonga = data
End Function
Lembrando que o mérito do Ponto é do LANDOSP, fiz minha função em cima da lógica utilizada por ele.
Tópico encerrado , respostas não são mais permitidas