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. |