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

man lernt doch immer wieder was Neues
Danke