Wochentag und Monat auslesen
-
hallo,
Ich möchte gerne in meinem Programm das Datum anzeigen. Aber es sol dort z.B. Freitag, 20. August 2004 stehen. Wie kann ich jetzt auslesen welcher Wochentag und welcher Monat ist.
-
Sieh dir mal TDateTime und dort insbesondere (aber nicht ausschliesslich) die Methode FormatString an.
Das aktuelle Datum (als TDateTime) erhältst du z.B. mit der Funktion Now().
-
Benutze die Suchfunktion, da du dies nur zu kopieren brauchst und den Quelltext nicht einmal ändern musst.
Hier der Code:
#define NUM_ELEMENTS(x) (sizeof((x)) / sizeof((x)[0])) SYSTEMTIME st; TCHAR szDate[32]; GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &st, NULL, szDate, NUM_ELEMENTS(szDate)); MessageBox (NULL, szDate, "Aktuelles Datum:" , NULL);
-
Ich bezweifle, dass der Quelltext nicht geändert werden muss, immerhin fehlt da ein entscheidender Schritt.

Dass TDateTime weit eleganter ist muss ja wohl nicht extra betont werden ...
-
jo has recht, da fehlt die GetLocalTime Zeile
.Hier ein Quelltxt, wo der richtige Schnippsel eingebaut ist:
//--------------------------------------------------------------------------- #include <vcl\vcl.h> #pragma hdrstop #include "Unit1.h" [b]#define NUM_ELEMENTS(x) (sizeof((x)) / sizeof((x)[0]))[/b] //--------------------------------------------------------------------------- #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) {[b] SYSTEMTIME st; TCHAR szDate[32]; GetLocalTime (&st); GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &st, NULL, szDate, NUM_ELEMENTS(szDate)); MessageBox (NULL, szDate, "Aktuelles Datum:" , NULL);[/b] } //---------------------------------------------------------------------------Und hier die Datei zum downloaden:
http://www.lo-net.de/fileexchange/6187_999626/beispiel.exe
-
ShowMessage(Now().FormatString("dddd, dd. mmmm yyyy"));Aber warum einfach, wenn's auch umständlich geht, was?
