VB-Homepage Tipp 050

Aktives Systemdatumsformat ermitteln

Um nicht irgend einen Geburtstagstermin zu vergessen, hatte ich mir ein kleines Programm geschrieben, daß das aktuelle Datum mit den Geburtstagsdaten einer Textdatei verglich und mich erinnerte, wenn ein Geburtstag nahte.
Irgendwie kam es später dazu, das auch andere dieses Programm nutzen wollten, und plotzlich hatte ich das Problem an einem PC, daß das Programm nichts anzeigte, obwohl ein Termin anstand. Was war passiert?

Das Systemdatumsformat entsprach nicht dem deutschen Standardformat TT.MM.JJJJ und so konnten die Geburtstagstermine
(die in diesem Format angegeben waren ) natürlich nicht stimmen.
Damit Sie zukünftig bei ähnlichen Problemen gleich wissen, wo der Hase läuft,
gibt es hier den Quellcode für ein kleines Programm,
das Ihnen das Systemdatumsformat ermittelt und anzeigt.

Dafür brauchen wir wie immer ein neues Projekt und neben der standardmäßig schon enthaltenen Form noch ein Modul (nur 16Bit).

######################################################
16Bit
General/Declarations (Modul)

Declare Function GetProfileString Lib "Kernel" (ByVal Sname$, ByVal Kname$, ByVal Def$, ByVal Ret$, ByVal Size%) As Integer

Global datemask As Variant
Global dateformat As Variant

######################################################
32Bit
Allgemein/Deklarationen
(Form)

Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Public datemask As Variant
Public dateformat As Variant

######################################################

Sub DateCheck ()

Dim Strsecname As String
Dim Strkeyname As String
Dim Varsuccess As Variant
Dim Strretdate As String
Dim strretsep As String
Dim strchar As String * 1

Strsecname = "Intl"
Strkeyname = "sShortDate"
Strretdate = String$(11, 0)
Varsuccess = GetProfileString(Strsecname, Strkeyname, "", Strretdate, Len(Strretdate))
Strsecname = "Intl"
Strkeyname = "sDate"
strretsep = String$(2, 0)
Varsuccess = GetProfileString(Strsecname, Strkeyname, "", strretsep, Len(strretsep))
strretsep = Left$(strretsep, 1)
strchar = UCase$(Left$(Strretdate, 1))
datemask = "##" & strretsep & "##" & strretsep & "####"

Select Case strchar
   Case "D": dateformat = "DD" & strretsep & "MM" & strretsep & "YYYY"
   Case "M": dateformat = "MM" & strretsep & "DD" & strretsep & "YYYY"
   Case "Y": datemask = "####" & strretsep & "##" & strretsep & "##"
   dateformat = "YYYY" & strretsep & "MM" & strretsep & "DD"
End Select

End Sub

Legen Sie zwei Label Objekte an (Label1 u. Label2) und tragen Sie in den Abschnitt Form/Load folgendes ein.

Call DateCheck

Label1.Caption = Dateformat
Label2.Caption = Datemask

Nun die Form noch etwas grafisch ansprechend aufbereiten, der Form einen Namen und ein Icon verpassen und fertig ist Ihr Testprogramm zur Systemdatumsformatermittlung.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite