Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TDateTime Format (https://www.delphipraxis.net/16215-tdatetime-format.html)

rockycat 12. Feb 2004 18:58


TDateTime Format
 
Hallo Zusammen!

Ich habe folgende Frage:

Wie läßt sich das im TDateTimePicker eingestellte Datum in dem selben Format wie es im Picker erscheint in einer andere Komponente (z.B. einem Label) darstellen?
Also z.B. als "Donnerstag, 12. Februar 2004".
Ich habe es mit


Delphi-Quellcode:
procedure TForm1.comboDatumChange(Sender: TObject);
var
    datum      :  String;
   

    t,m,j  :  String;

    iJahr,

    iMonat,
    iTag    :  Word;


begin
    DecodeDate(comboDatum.Date, iJahr, iMonat, iTag);


    {Wochentag}
    case DayOfWeek(iTag) of
        1   : t := 'Sonntag';
        2   : t := 'Montag';
        3   : t := 'Dienstag';
        4   : t := 'Mittwoch';
        5   : t := 'Donnerstag';
        6   : t := 'Freitag';
        7   : t := 'Samstag';

    end; {case DayOfWeek}




     {Monat}
    case iMonat of
        1   : m := 'Januar';
        2   : m := 'Februar';
        3   : m := 'März';
        4   : m := 'April';
        5   : m := 'Mai';
        6   : m := 'Juni';
        7   : m := 'Juli';
        8   : m := 'August';
        9   : m := 'September';
       10   : m := 'Oktober';
       11   : m := 'November';
       12   : m := 'Dezember';
    end; {ende case iMonat}



     j := IntToStr(iJahr);

     datum := t
              + ', '
              + IntToStr(iTag)
              + '. '
              + m
              + ' '
              + j;

     edit1.Text := datum;

end;
versucht, wobei aber leider der Tag im Label immer der selbe bleibt (also z:B. "Donnerstag"), wenn der Monat oder das Jahr im Picker verändert wird... :(

[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]

Matze 12. Feb 2004 19:01

Re: TDateTime Format
 
reicht nicht:

Delphi-Quellcode:
case iTag of ...

Nachtrag: Herzlich willkommen in der DP!

mirage228 12. Feb 2004 19:06

Re: TDateTime Format
 
Hi rockycat,

schau dir mal FormatDateTime an.

mfG
mirage228

rockycat 12. Feb 2004 20:18

Re: TDateTime Format
 
Dass der Fehler dort (DayOfWeek) liegt habe ich inzwischen mit dem Debugger herausgefunden. Aber wie kann ich den Picker direkt auslesen? Ein ...Text := ... - wie z.B. bei Edit gibt es beim DateTimePicker nicht. :wall:

rockycat 12. Feb 2004 20:21

Re: TDateTime Format
 
mirage228:

schon probiert; geht nicht!

Matze 12. Feb 2004 20:26

Re: TDateTime Format
 
Ich hab's jetzt mal getestet, also so, wie du's im 1. Post hast, geht's bei mir:

Delphi-Quellcode:
procedure TForm1.DateTimePicker1Change(Sender: TObject);
var
  datum : String;
  t,m,j : String;
  iJahr, iMonat, iTag : Word;
begin
DecodeDate(DateTimePicker1.Date, iJahr, iMonat, iTag);

{Wochentag} 
case DayOfWeek(iTag) of
  1: t := 'Sonntag';
  2: t := 'Montag';
  3: t := 'Dienstag';
  4: t := 'Mittwoch';
  5: t := 'Donnerstag';
  6: t := 'Freitag';
  7: t := 'Samstag';
end; {case DayOfWeek}

{Monat} 
case iMonat of
   1: m := 'Januar';
   2: m := 'Februar';
   3: m := 'März';
   4: m := 'April';
   5: m := 'Mai';
   6: m := 'Juni';
   7: m := 'Juli';
   8: m := 'August';
   9: m := 'September';
  10: m := 'Oktober';
  11: m := 'November';
  12: m := 'Dezember';
end; {ende case iMonat}

j := IntToStr(iJahr);

datum := t + ', ' + IntToStr(iTag) + '. ' + m + ' ' + j;
Edit1.Text := datum;
end;

DP-Maintenance 12. Feb 2004 22:10

DP-Maintenance
 
Dieses Thema wurde von "Luckie" von "Fragen / Anregungen zur DP" nach "Object-Pascal / Delphi-Language" verschoben.

rockycat 13. Feb 2004 08:12

Re: TDateTime Format
 
Hi!

Danke, dass Du Dir die Mühe gemacht hast; doch leider geht's so nicht!
Das ist (mehr od. weniger) genau mein Versuch -- Wechsle mal den Monat oder das Jahr im DateTimePicker...
Der Wochentag (Mo., Di., Mi.,...) bleibt im Editor immer derselbe, was aber eigentlich nicht richtig ist.
Der 5. Feb. 2004 z.B. war ein Do., der 5. März 2005 ist ein Samstag. Laut dem Programm jedoch ist beides ein Do. -- nur im Edit1; im DateTimePicker stimmt's natürlich, da steht Samstag (Eigenschaft "DateFormat" auf "dfLong" und "Format" auf "dddd, dd. MMMM yyyy")

Matze 13. Feb 2004 08:14

Re: TDateTime Format
 
Ich habe nur das von dir übernommen, aber bei mir ändert sich der Wochentag und das Jahr auch mit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz