Seite 1 von 2

Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 10:45
von Velindos
Hallo Leute,
will das Monat im Klartext aus Systemdatum für die Anzeige.
Systemdatum deswegen damit ich bei Sprachpaketen nicht neu einstellen muss.

Habe von WinApi-RSBasic folgendes eingesetzt:
; System Datum holen und ins Date eintragen
SetWindowLongPtr_(GadgetID(#PhotoCalender_DateGadget),#GWL_STYLE,GetWindowLongPtr_(GadgetID(1),#GWL_STYLE) | #DTS_LONGDATEFORMAT)
; Vom Date ins Gadget konvertieren
SetGadgetText(#PhotoCalender_EditorGadget,GetGadgetText(#PhotoCalender_DateGadget))
; In die Variable lesen
MyAktueller_KalenderDatum$ = GetGadgetText(#PhotoCalender_DateGadget)
Nun, das funzt! Aber ich würde das Monat alleine brauchen!

Da sich das Datum mit den Sprachpaketen ändert, geht ausschneiden nicht! Somit brauche ich das Monat als einzelnen Variable!

Jemand eine Idee!

Gruss ... Velindos!

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 11:52
von _JON_

Code: Alles auswählen

Define st.SYSTEMTIME, sDate.s{261}
GetSystemTime_(@st)
GetDateFormat_(#LOCALE_USER_DEFAULT, 0, @st, @"MMMM", @sDate, 260) 
Debug sDate

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 12:49
von Velindos
Hallo,
besten DANK, dass muss man mal wissen!
Geht das auch für den TAG im Klartext?
Hab ein bischen hin/her verschoben, bekomm´s einfach nicht hin!

Gruss ... Velindos

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 12:57
von _JON_
Ja, geht auch. Einfach dddd anstatt (oder zusätzlich zu) MMMM im Format angegeben

https://msdn.microsoft.com/de-de/librar ... s.85).aspx

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 13:00
von xdes
hi,
wenn ich das richtig versteh suchst du so was wie aus dem bereich FormatDate() aus der hilfe

Code: Alles auswählen

  Debug FormatDate("J=%yyyy, M=%mm, T=%dd", Date()) ; zeigt das aktuelle Datum in 
                                                    ; der Form "J=2010, M=04, T=16"
  
  Debug FormatDate("%dd.%mm.%yyyy", Date()) ; zeigt das aktuelle Datum in 
                                            ; der Form "16.04.2010"
  
  Debug FormatDate("%hh:%ii:%ss", Date())  ; zeigt die aktuelle Zeit mittels dem 00:00:00 Format

%yyyy: wird durch den Jahres-Wert ersetzt, auf 4 Stellen.
%yy: wird durch den Jahres-Wert ersetzt, auf 2 Stellen.
%mm: wird durch den Monats-Wert ersetzt, auf 2 Stellen.
%dd: wird durch den Tages-Wert ersetzt, auf 2 Stellen.
%hh: wird durch den Stunden-Wert ersetzt, auf 2 Stellen.
%ii: wird durch den Minuten-Wert ersetzt, auf 2 Stellen.
%ss: wird durch den Sekunden-Wert ersetzt, auf 2 Stellen.

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 13:03
von Velindos
Hallo,
Danke, da hab ich einfach zu deutsch gedacht und "TTTT" verwendet.

Na, kann mal passieren! Funzt, du hast mir wirklich geholfen!

Gruss ... Velindos!

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 13:05
von Velindos
Hallo

@xdes!
Das mit der FormatDate hat einen Hacken, es ist kein Klartext!

@_JON_
Geht die Sache auch für das LONGDATEFORMAT, wie gesagt das ich die Sache
wie folgt "Samstag, 2.März 2018" mit "Debug sDate" bekomme?
Damit würden die Gadget´s entfallen!
- Dies weil ich es einmal getrennt und einmal gesamt Anzeige!

Hab die Sache mal in eine Procedure verpflanzt:

Code: Alles auswählen

Global MyAktueller_KalenderMonat$
Global MyAktueller_KalenderTag$

Procedure KlartextDatum()
  Define st.SYSTEMTIME, sDate.s{261}
  
  ; Klartext MONAT
  GetSystemTime_(@st)
  GetDateFormat_(#LOCALE_USER_DEFAULT, 0, @st, @"MMMM", @sDate, 260)
  MyAktueller_KalenderMonat$ = sDate
  
  ; Klartext TAG
  GetSystemTime_(@st)
  GetDateFormat_(#LOCALE_USER_DEFAULT, 0, @st, @"dddd", @sDate, 260)
  MyAktueller_KalenderTag$ = sDate
EndProcedure

KlartextDatum()

Debug "MONAT= "+   MyAktueller_KalenderMonat$
Debug "TAG= "+   MyAktueller_KalenderTag$
Passt dass? - oder kann man noch was besser machen!

Gruss ... Velindos!

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 14:00
von _JON_
So?

Code: Alles auswählen

Define st.SYSTEMTIME, sDate.s{261}
GetSystemTime_(@st)
GetDateFormat_(#LOCALE_USER_DEFAULT, 0, @st, @"dddd, d.MMMM yyyy", @sDate, 260) 
Debug sDate

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 14:02
von Mijikai
Als Procedure :)

Code: Alles auswählen

Procedure.s GetDayMonth()
  Protected ST.SYSTEMTIME
  Protected Buffer.s = Space(#MAX_PATH + 1)
  GetSystemTime_(@ST)
  If GetDateFormat_(#Null,#DATE_LONGDATE,@ST,#Null,@Buffer,#MAX_PATH)
    ProcedureReturn Buffer
  EndIf
EndProcedure

Debug GetDayMonth()

Re: Monat im Klartext aus Systemdatum

Verfasst: 03.03.2018 14:20
von hjbremer
:D man lernt doch immer wieder was Neues

Danke