vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Windows/System22.03.05
GetDateFormat-Funktion

Diese Funktion formatiert einen Datums-String anhand einer SYSTEMTIME-Struktur.

Betriebssystem:  Win95, Win98, WinNT 4.0, Win2000, WinMEViews:  10.065 

Deklaration:

Declare Function GetDateFormat Lib "kernel32.dll" _
  Alias "GetDateFormatA"  ( _
  ByVal Locale As Long, _
  ByVal dwFlags As Long, _
  lpDate As SYSTEMTIME, _
  ByVal lpFormat As Any, _
  ByVal lpDateStr As String, _
  ByVal cchDate As Long) As Long

Beschreibung:
Diese Funktion formatiert einen Datums-String anhand einer SYSTEMTIME-Struktur.

Parameter:
LocaleErwartet eine der "Locale"-Konstanten, die beschreiben, welche Formateinstellung zur Formatierung benutzt werden sollen.
dwFlagsErwartet eine oder eine Kombination mehrerer "Flags"-Konstanten, die weitere Optionen bei der Formatierung festlegen.
lpDateErwartet eine SYSTEMTIME-Struktur, die mit dem zu formatierenden Datum gefüllt ist.
lpFormatErwartet das Format, in dem das Datum ausgegeben werden soll. Die einzelnen Kommandos können mit Leerzeichen voneinander getrennt werden. Nicht beschriebeneWerte oder im Format enthaltener Text müssen in einzelne Anführungsstriche gefasst sein ("'"").
 
Folgende Formate können angegeben werden:
  • d
    Tag des Datums als Zahl ohne führende "0" bei einstelligenZahlen 
  • dd
    Tag des Datums als Zahl mit führender "0" bei zweistelligenZahlen 
  • ddd
    Tag des Datums als dreistelliger Text z.B. Mon für Montag 
  • dddd
    Tag des Datums als Wort 
  • M
    Monat des Datums als Zahl ohne führende "0" bei einstelligenZahlen 
  • MM
    Monat des Datums als Zahl mit führender "0" bei zweistelligenZahlen 
  • MMM
    Monat des Datums als dreistelliger Text z.B. Jan für Januar 
  • MMMM
    Monat des Datums als Wort 
  • y
    Jahrzehnt des Datums als Zahl ohne führende "0" bei einstelligenZahlen 
  • yy
    Jahrzehnt des Datums als Zahl mit führender "0" bei zweistelligenZahlen 
  • yyyy
    Komplettes Jahr. 
  • gg
    ID der Lokalen Ländereinstellung
lpDateStrErwartet einen Puffer, der mit demformatierten String gefüllt wird.
cchDateErwartet die Größe des Puffers in Bytes.

Locale Konstanten:

Const LOCALE_SYSTEM_DEFAULT = &H400
' Zeitformat des Systems
 
Const LOCALE_USER_DEFAULT = &H800
' Zeitformat des aktuellen Benutzers

Rückgabewert:
Ist die Funktion erfolgreich, so liefert sie die Länge des formatierten Strings, andernfallswird der Wert "0" zurückgegeben. Für erweiterte Fehlerinformationen könnenSie die GetLastError-Funktionaufrufen.

Beispiel:

Private Declare Function GetDateFormat Lib "kernel32.dll" _
  Alias "GetDateFormatA" ( _
  ByVal Locale As Long, _
  ByVal dwFlags As Long, _
  lpDate As SYSTEMTIME, _
  ByVal lpFormat As Any, _
  ByVal lpDateStr As String, _
  ByVal cchDate  As Long) As Long
Private Declare Sub GetLocalTime Lib "kernel32.dll" (lpSystemTime As SYSTEMTIME) 
 
Private Type SYSTEMTIME
  wYear As Integer
  wMonth As Integer
  wDayOfWeek As Integer
  wDay As Integer
  wHour As Integer
  wMinute As Integer
  wSecond As Integer
  wMilliseconds As Integer
End Type
 
' GetDateFormat Locale-Konstanten
Private Const LOCALE_SYSTEM_DEFAULT = &H400 ' Zeitformat des Systems
Private Const LOCALE_USER_DEFAULT = &H800 ' Zeitformat des aktuellen Benutzers
 
' GetDateFormat dwFlags-Konstanten
Private Const LOCALE_NOUSEROVERRIDE = &H80000000 
' Standard-Systemformat des Datums wird genutzt und die Benutzereinstellungen ignoriert
Private Const LOCALE_USE_CP_ACP = &H40000000 
' der ANSI Zeichensatz soll für die Darstellung des Formats benutzt werden
Private Const DATE_SHORTDATE = &H1     ' formatiert das Datum als kurzes Datum
Private Const DATE_LONGDATE = &H2        ' formatiert das Datum als langes Datum
Private Const DATE_USE_ALT_CALENDAR = &H4 
' wenn ein alternativer Kalender existiert, sollen dessen Werte benutzt werden
Private Const DATE_YEARMONTH = &H8 
' formatiert das Datum nach dem Monat/Jahr Format
Private Const DATE_LTRREADING = &H10   ' das Datum wird von links nach rechts formatiert 
Private Const DATE_RTLREADING = &H20   ' das Datum wird von rechts nach links formatiert
' formatiertes Datum ausgeben
Private Sub Command1_Click()
  Dim ST As SYSTEMTIME, FDate As String * 256, Retval As Long
 
  ' aktuelles Datum ermitteln
  Call GetLocalTime(ST)
 
  ' Datum formatieren
  Retval = GetDateFormat(0&, 0&, ST, "dddd', der 'dd MMMM yyyy", FDate, ' Len(FDate)) 
 
  ' Datum ausgeben
  MsgBox Left$(FDate, Retval), , "Aktuelles Datum"
End Sub

Diese Seite wurde bereits 10.065 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel