VERFIICAR FORMATO DE UMA DATA
Boa tarde!
Tenho vários formatos de datas para verificar:
d/mm/yyyy
d/mm/yy
d/m/yyyy
d/m/yy
dd/mm/yyyy
dd/mm/yy
dd/m/yyyy
dd/m/yy
Eu preciso identificar em qual formato ela está para dar o devido tratamento.
Existe alguma função no VB6 que me retorne o formato de uma data?
Abs
Tenho vários formatos de datas para verificar:
d/mm/yyyy
d/mm/yy
d/m/yyyy
d/m/yy
dd/mm/yyyy
dd/mm/yy
dd/m/yyyy
dd/m/yy
Eu preciso identificar em qual formato ela está para dar o devido tratamento.
Existe alguma função no VB6 que me retorne o formato de uma data?
Abs
FBUR,
Sei que tem como retornar [Ô]se é uma data[Ô].
Isto já é um passo para que você quer.
=====================================================
Função IsDate (Visual Basic)
https://msdn.microsoft.com/pt-br/library/00wf8zk9(v=vs.90).aspx
=====================================================
Tem como fazer o INVERSO que você quer:
=====================================================
Visual Basic 6 - Trabalhando com datas
http://www.macoratti.net/vb_datas.htm
=====================================================
Módulo 5 - Lição 19 - Funções do VBA - Funções de Data/Hora e Matemáticas
http://juliobattisti.com.br/cursos/excelavancado/modulo5/19.asp
=====================================================
Acho que você quer fazer vai ter que fazer do jeito mais legal ... desenvolver sua própria função.
O que você pode fazer é pegar a data e [Ô]fatiá-la[Ô]. Dai descobre quem é o dia, o mês e o ano.
Use a função [Ô]Format[Ô] para isto.
Use a função [Ô]InStr[Ô] ou a [Ô]InStrRev[Ô] para localizar onde estão os divisores [Ô]/[Ô].
Mas talvez tenha alguma API por ai que faça isto...
... epa! Achei algo promissor!
=====================================================
11 Date/Time API Function
http://www.ex-designz.net/apicat.asp?apicat=15
=====================================================
O que é isto [Ô]SYSTEMTIME Structure[Ô]?
Veja se ajuda.
[][ô]s,
Tunusat.
Sei que tem como retornar [Ô]se é uma data[Ô].
Isto já é um passo para que você quer.
=====================================================
Função IsDate (Visual Basic)
https://msdn.microsoft.com/pt-br/library/00wf8zk9(v=vs.90).aspx
=====================================================
Tem como fazer o INVERSO que você quer:
=====================================================
Visual Basic 6 - Trabalhando com datas
http://www.macoratti.net/vb_datas.htm
=====================================================
Módulo 5 - Lição 19 - Funções do VBA - Funções de Data/Hora e Matemáticas
http://juliobattisti.com.br/cursos/excelavancado/modulo5/19.asp
=====================================================
Acho que você quer fazer vai ter que fazer do jeito mais legal ... desenvolver sua própria função.
O que você pode fazer é pegar a data e [Ô]fatiá-la[Ô]. Dai descobre quem é o dia, o mês e o ano.
Use a função [Ô]Format[Ô] para isto.
Use a função [Ô]InStr[Ô] ou a [Ô]InStrRev[Ô] para localizar onde estão os divisores [Ô]/[Ô].
Mas talvez tenha alguma API por ai que faça isto...
... epa! Achei algo promissor!
=====================================================
11 Date/Time API Function
http://www.ex-designz.net/apicat.asp?apicat=15
=====================================================
O que é isto [Ô]SYSTEMTIME Structure[Ô]?
Veja se ajuda.
[][ô]s,
Tunusat.
FBUR, utilizo a rotina abaixo que serve para puxar automaticamente a data e hora(se a data do pc estiver errada, virá errado, pois puxa conforme o que está no pc), tenho um campo [ô]text[ô] e ele traz esta informação conforme abaixo:
lsql = lsql & [Ô][ô][Ô] & Format(Date, [Ô]dd/mm/yyyy[Ô]) & [Ô] [Ô] & Format(Time, [Ô]Long Time[Ô]) & [Ô][ô],[Ô]
Att.
Milton Silva
lsql = lsql & [Ô][ô][Ô] & Format(Date, [Ô]dd/mm/yyyy[Ô]) & [Ô] [Ô] & Format(Time, [Ô]Long Time[Ô]) & [Ô][ô],[Ô]
Att.
Milton Silva
Obrigado amigos.
Eu já tenho uma função que, como diz o amigo TUNUSAT, [Ô]fatia[Ô] a data. Eu só preciso adaptar para todos os formatos.
Se tivesse uma função nativa, iria ajudar. Mas já estou trabalhando para atualizar a minha.
Abs!
Eu já tenho uma função que, como diz o amigo TUNUSAT, [Ô]fatia[Ô] a data. Eu só preciso adaptar para todos os formatos.
Se tivesse uma função nativa, iria ajudar. Mas já estou trabalhando para atualizar a minha.
Abs!
Fiz de um jeito mais fácil:
Acabei de testar. Funciona muito bem. Agora é só criar uma função.
[]'s
If strData = Format(strData, [Ô]dd/mm/yyyy[Ô]) Then
lst1.AddItem strData
ElseIf strData = Format(strData, [Ô]dd/mm/yy[Ô]) Then
lst2.AddItem strData
ElseIf strData = Format(strData, [Ô]dd/m/yyyy[Ô]) Then
lst3.AddItem strData
ElseIf strData = Format(strData, [Ô]dd/m/yy[Ô]) Then
lst4.AddItem strData
ElseIf strData = Format(strData, [Ô]d/mm/yyyy[Ô]) Then
lst5.AddItem strData
ElseIf strData = Format(strData, [Ô]d/mm/yy[Ô]) Then
lst6.AddItem strData
ElseIf strData = Format(strData, [Ô]d/m/yyyy[Ô]) Then
lst7.AddItem strData
ElseIf strData = Format(strData, [Ô]d/m/yy[Ô]) Then
lst8.AddItem strData
End If
[ô]onde strData é a variável tipo String que recebe uma data qualquer.
Acabei de testar. Funciona muito bem. Agora é só criar uma função.
[]'s
FBUR,
Perguntas...
Você viu as APIs?
Se a data vier em padrão ANSI (yyyy/MM/dd) ou padrão americano / europeu (MM/dd/yyyy) você não aceita / formata?
[][ô]s,
Tunusat.
Perguntas...
Você viu as APIs?
Se a data vier em padrão ANSI (yyyy/MM/dd) ou padrão americano / europeu (MM/dd/yyyy) você não aceita / formata?
[][ô]s,
Tunusat.
minha pergunta é, é para saber os formatos de data do windows
para verificar as data do windows e se preciso alterar, coloque um textbox, um combo e um command button
Private Const LOCALE_SSHORTDATE = &H1F
Private Declare Function GetSystemDefaultLCID Lib [Ô]kernel32[Ô] () As Long
Private Declare Function SetLocaleInfo Lib [Ô]kernel32[Ô] Alias [Ô]SetLocaleInfoA[Ô] (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
Private Declare Function GetLocaleInfo Lib [Ô]kernel32[Ô] Alias [Ô]GetLocaleInfoA[Ô] (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Private Sub Command1_Click()
Dim lngLocale As Long
lngLocale = GetSystemDefaultLCID()
If SetLocaleInfo(lngLocale, LOCALE_SSHORTDATE, Combo1.Text) = False Then
MsgBox [Ô]Houve um erro ao definir o formato de data ![Ô]
Else
MsgBox [Ô]Formato de data atualizado para [Ô] & Combo1.Text & [Ô] com sucesso ![Ô]
Form_Load
End If
End Sub
Private Sub Form_Load()
Dim length As Long
Dim buf As String * 1024
Text1.Text = [Ô][Ô]
lLocal = GetSystemDefaultLCID()
length = GetLocaleInfo(lLocal, LOCALE_SSHORTDATE, buf, Len(buf))
Text1.Text = Left$(buf, length - 1)
With Combo1
.AddItem [Ô][Selecione um formato][Ô]
.AddItem [Ô]MM/dd/yyyy[Ô]
.AddItem [Ô]dd/MM/yyyy[Ô]
.AddItem [Ô]MM-dd-yyyy[Ô]
.AddItem [Ô]dd-MM-yyyy[Ô]
.ListIndex = 0
End With
End Sub
Tópico encerrado , respostas não são mais permitidas