Monat im Klartext aus Systemdatum

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Monat im Klartext aus Systemdatum

Beitrag 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Monat im Klartext aus Systemdatum

Beitrag 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
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Monat im Klartext aus Systemdatum

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Monat im Klartext aus Systemdatum

Beitrag 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
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
xdes
Beiträge: 57
Registriert: 13.08.2016 12:53

Re: Monat im Klartext aus Systemdatum

Beitrag 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.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Monat im Klartext aus Systemdatum

Beitrag 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Monat im Klartext aus Systemdatum

Beitrag 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Monat im Klartext aus Systemdatum

Beitrag 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
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Monat im Klartext aus Systemdatum

Beitrag 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()
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Re: Monat im Klartext aus Systemdatum

Beitrag von hjbremer »

:D man lernt doch immer wieder was Neues

Danke
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Antworten