Accueil > > > CONVERTISSEUR 1.1.2001 -> 01.01.2001
CONVERTISSEUR 1.1.2001 -> 01.01.2001
Information sur la source
Description
Bon, c un peu nul comme code, mais ca m'a servi dans mon appli. J'ai une texbox de type date, qui pas défaut recoit la date du jour.
Pb : lorsque la date est genre 05.08.2004 -> ca marque 5.8.2004
Si l'on modifie la textbox, ex, on remplace '5' par '5', ca devient automatiquement : 05.08.2004
par contre, si on y touche pas, ca reste 5.8.2004.
Donc, pour mes recherches dans ma base de données, ca m'embetait.
Source
- 'évènement qui va appeler la conversion:
- '********************************
- Private Sub Bouton_OK_Click()
- Text_Date = Conversion_Date(Text_Date)
- End Sub
-
-
- '***************************************************************************************
- ' Convertit 1.1.2001 -> 01.01.2001
- '***************************************************************************************
-
- Function Conversion_Date(La_Date As String) As String
- Dim Jour, Mois As String
- If Len(La_Date) <> 10 Then
- 'l'expression de la date n'a pas le bon format
- 'teste le jour:
- Jour = Left(La_Date, InStr(1, La_Date, "."))
- If Len(Jour) <> 3 Then
- 'le jour n'est pas correct:
- Jour = "0" & Jour
- Jour = Left(Jour, 2)
- Mois = Right(La_Date, 7)
- If Left(Mois, 1) = "." Then
- 'le mois n'est pas correct:
- Mois = Right(Mois, 6)
- Mois = "0" & Mois
- End If
- La_Date = Jour & "." & Mois
- End If
- End If
- Conversion_Date = La_Date
- End Function
-
-
- ***********************************************************************
- 2ème fonction de conversion :
- ***********************************************************************
- Dans un module, par exemple :
-
- Public infoDC As String
- Const LOCALE_USER_DEFAULT = &H400
- Const LOCALE_SSHORTDATE = &H1F
- Const LOCALE_SLONGDATE = &H20
- Const LOCALE_STIMEFORMAT = &H1003
- 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
-
- '***************************************************************************************
- ' Renvoit la date du jour
- ' avec le séparateur correct "/" ou "."
- '***************************************************************************************
- Public Function La_Date() As String
- Dim Buffer As String, Ret As Long, infoDL As String, infoT As String
- Buffer = String$(256, 0)
- Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, Buffer, Len(Buffer))
- infoDC = Left$(Buffer, Ret - 1)
- Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, Buffer, Len(Buffer))
- infoDL = Left$(Buffer, Ret - 1)
- Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, Buffer, Len(Buffer))
- infoT = Left$(Buffer, Ret - 1)
- 'MsgBox "Date courte : " & infoDC & vbLf & vbLf & "Date longue : " & infoDL & vbLf & vbLf & "Heure : " & infoT
- La_Date = Format$(Date, infoDC)
- End Function
-
- '***************************************************************************************
- ' Convertion de date selon le séparateur régional :
- '***************************************************************************************
-
- Function Conversion_Date(Date_a_convertir As String) As String
- Dim Jour, Mois, Annee As String
- Dim separateur_regional As String
- If infoDC = "" Then Call La_Date
- separateur_regional = Left(infoDC, 3)
- separateur_regional = Right(separateur_regional, 1)
- 'separateur_regional vaut alors "." ou "/" selon le système d'exploitation
- Jour = Left(Date_a_convertir, 2)
- Mois = Left(Date_a_convertir, 5)
- Mois = Right(Mois, 2)
- Annee = Right(Date_a_convertir, 4)
- Date_a_convertir = Jour & separateur_regional & Mois & separateur_regional & Annee
- Conversion_Date = Date_a_convertir
- End Function
-
'évènement qui va appeler la conversion:
'********************************
Private Sub Bouton_OK_Click()
Text_Date = Conversion_Date(Text_Date)
End Sub
'***************************************************************************************
' Convertit 1.1.2001 -> 01.01.2001
'***************************************************************************************
Function Conversion_Date(La_Date As String) As String
Dim Jour, Mois As String
If Len(La_Date) <> 10 Then
'l'expression de la date n'a pas le bon format
'teste le jour:
Jour = Left(La_Date, InStr(1, La_Date, "."))
If Len(Jour) <> 3 Then
'le jour n'est pas correct:
Jour = "0" & Jour
Jour = Left(Jour, 2)
Mois = Right(La_Date, 7)
If Left(Mois, 1) = "." Then
'le mois n'est pas correct:
Mois = Right(Mois, 6)
Mois = "0" & Mois
End If
La_Date = Jour & "." & Mois
End If
End If
Conversion_Date = La_Date
End Function
***********************************************************************
2ème fonction de conversion :
***********************************************************************
Dans un module, par exemple :
Public infoDC As String
Const LOCALE_USER_DEFAULT = &H400
Const LOCALE_SSHORTDATE = &H1F
Const LOCALE_SLONGDATE = &H20
Const LOCALE_STIMEFORMAT = &H1003
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
'***************************************************************************************
' Renvoit la date du jour
' avec le séparateur correct "/" ou "."
'***************************************************************************************
Public Function La_Date() As String
Dim Buffer As String, Ret As Long, infoDL As String, infoT As String
Buffer = String$(256, 0)
Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, Buffer, Len(Buffer))
infoDC = Left$(Buffer, Ret - 1)
Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, Buffer, Len(Buffer))
infoDL = Left$(Buffer, Ret - 1)
Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, Buffer, Len(Buffer))
infoT = Left$(Buffer, Ret - 1)
'MsgBox "Date courte : " & infoDC & vbLf & vbLf & "Date longue : " & infoDL & vbLf & vbLf & "Heure : " & infoT
La_Date = Format$(Date, infoDC)
End Function
'***************************************************************************************
' Convertion de date selon le séparateur régional :
'***************************************************************************************
Function Conversion_Date(Date_a_convertir As String) As String
Dim Jour, Mois, Annee As String
Dim separateur_regional As String
If infoDC = "" Then Call La_Date
separateur_regional = Left(infoDC, 3)
separateur_regional = Right(separateur_regional, 1)
'separateur_regional vaut alors "." ou "/" selon le système d'exploitation
Jour = Left(Date_a_convertir, 2)
Mois = Left(Date_a_convertir, 5)
Mois = Right(Mois, 2)
Annee = Right(Date_a_convertir, 4)
Date_a_convertir = Jour & separateur_regional & Mois & separateur_regional & Annee
Conversion_Date = Date_a_convertir
End Function
Conclusion
C plus facile d'imposer un format quand on enregistre la date...
... que de rechercher tous les formats de date possible quand on fait une recherches SQL...
Historique
- 25 août 2004 20:06:54 :
- 25/08/2004 : Explication de cette 2 eme fonction :
J'ai eu un problème lors du passage d'un système d'exploitation allemand à un francais. Une date contenu dans ma base de données était au format dd.mm.yyyy et ma requete plantait a cause de ca. J'ai bien essayé la fonction format, mais ca ne marchait pas. La date restait inchangée meme apres la commande Format !
La fonction La_Date renvoit la date du jour au bon format, et elle contient la variable infoDC. Cette variable est de la forme dd.mm.yyyy si c'est un système allemand par exemple, et dd/mm/yyyy si c'est un système francais.
1°)Un premier appel a la fonction la_date va remplir cette variable infoDC.
2°)Ensuite un appel a la fonction conversion_date va extraire le séparateur régional, puis remettre la date au bon format.
Je sais que c'est exactement ce que fait la fonction "format" mais dans mon cas, ca n'a pas marché, donc....
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|