Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wochentag rückgabe bei TMonthCalender (https://www.delphipraxis.net/91962-wochentag-rueckgabe-bei-tmonthcalender.html)

ferby 12. Mai 2007 12:57


Wochentag rückgabe bei TMonthCalender
 
Hallo,

Ich verwende die Komponente TMonthCalender damit der Anwender ein Datum wählen kann.

Ich bräuchte auch den Namen des gewählten Wochentages, finde aber keine Funktion die mir das bei TMonthCalender zurückliefert.
Gibt es da überhaupt eine solche Funktion?

Bzw kennt ihr eine fertige Funktion der ich Date übergebe und den Wochentag retour bekomme?

mkinzler 12. Mai 2007 12:59

Re: Wochentag rückgabe bei TMonthCalender
 
Mit DayOfTheWeek() bekommst du die Nummer des tages. wenn du dann noch einen array mit den Wochentagsbezeichnungen anlegst, kannst du dann den tag als Wort erhalten

ferby 12. Mai 2007 13:02

Re: Wochentag rückgabe bei TMonthCalender
 
Hallo,

danke das mach ich so.

raiguen 12. Mai 2007 13:20

Re: Wochentag rückgabe bei TMonthCalender
 
Zitat:

Zitat von mkinzler
Mit DayOfTheWeek() bekommst du die Nummer des tages. wenn du dann noch einen array mit den Wochentagsbezeichnungen anlegst, kannst du dann den tag als Wort erhalten

Ein zusätzlich (manuell erstelltes) Array ist nicht notwendig, das es bereits in den SysUtils was feines in der Art gibt: ShortDayNames bzw LongDayNames.
(LongMonthNames und ShortMonthNames gibt es auch noch ;) )

Um also den Wochentag aus einem MonthCalender zu erhalten:
Delphi-Quellcode:
  Label1.Caption := ShortDayNames[DayOfWeek(MonthCalendar1.Date)];
//--ergibt für den 13.Mai2007 Sa
  Label1.Caption := LongDayNames[DayOfWeek(MonthCalendar1.Date)];
//--ergibt für den 13.Mai2007 Samstag
Wenn du allerdings das gewählte Datum beispielweise in der Form Samstag, 13.Mai 2007 haben möchstest, dann schau dir mal die Funktion FormateDateTime() an!

ferby 12. Mai 2007 13:25

Re: Wochentag rückgabe bei TMonthCalender
 
Hallo,

Ich brauche nur das Kürzel des Wochentages, also Mo, Di, etc


Habe das jetzt so gelöst:

Delphi-Quellcode:
const
 Wochentage: Array[1..7] of String =('Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So');

.
.
.

'Datum: ' + DateToStr(Kalender.Date) + ' ' + Wochentage[DayOfTheWeek(Kalender.Date)]
Kalender ist bei mir TMonthCalender.

Das ganze schaut dann so aus:

Datum: 14.05.2007 Mo

raiguen 12. Mai 2007 13:48

Re: Wochentag rückgabe bei TMonthCalender
 
Zitat:

Zitat von ferby
Hallo,

Ich brauche nur das Kürzel des Wochentages, also Mo, Di, etc

Das erhälst du ja durch die Funktion ShortDayNames[DayOfWeek(Kalender.Date)] ;)
Und das hier
Zitat:

'Datum: ' + DateToStr(Kalender.Date) + ' ' + Wochentage[DayOfTheWeek(Kalender.Date)]
kannst du durch die FormatDateTimeFunktion so elegant bekommen:
Delphi-Quellcode:
  Label1.Caption := FormatDateTime('"Datum:" dd.mm.yyyy ddd',Kalender.Date);
  //-- andere Beispiele für Datumsausgabe:
  FormatDateTime('"Datum:" ddd, dd.mm.yyyy' ,Kalender.Date); // Datum: So, 12.08.2007
  FormatDateTime('"Datum:" dddd,dd.mmm. yyyy' ,Kalender.Date); // Datum: Sonntag,12.Aug. 2007
  FormatDateTime('"Datum:" dddd, dd.mmmm yyyy' ,Kalender.Date); // Datum: Sonntag, 12.August 2007

ferby 20. Mai 2007 08:09

Re: Wochentag rückgabe bei TMonthCalender
 
Hallo,

bin erst jetzt dazu gekommen es auszuprobieren.
Danke funktioniert super.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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