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? 😉


Anmelden zum Antworten