Entwickler-Ecke

Sonstiges (Delphi) - wochentage berechnen


Luncustaf - Mo 14.04.03 14:56
Titel: wochentage berechnen
hi,

ich habe hier ein programm mit dem eine zeitperiode berechnet werden muss

ich hab zb eine periode vom 14/04/2003-23/04/2003 nun muss ich diese aufsplitten in

14/04/2003 - Montag
15/04/2003 - Dienstag
.
.
.
23/04/2003 - Mittwoch

-> diese daten schreibe ich alle in einen array - nun muss ich aber herrausfinden welche tage in dieser zeitperiode sonntage/samstage oder feiertage sind.

kann mir jemand einen ansatz geben wie ich das bewerkstellige?

gr€€tz


LCS - Mo 14.04.03 15:11

Hi
es gibt in Delphi 2 Funktionen mit denen du den Wochentag ermitteln kannst:
DayOfWeek
DayOfTheWeek (nach ISO)

Beide liefern den Wochentag als Zahl zurück und die kannst du ja in dein Array mit aufnehmen.

Gruss Lothar


gogi2207 - Mo 14.04.03 15:23

Kannst das mal probieren, bei mir gehts zumindest!


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject);
 var
  Datum: TDateTime;
  days: array[1..7] of string;
begin
  days[1] := 'Sonntag';
  days[2] := 'Montag';
  days[3] := 'Dienstag';
  days[4] := 'Mittwoch';
  days[5] := 'Donnerstag';
  days[6] := 'Freitag';
  days[7] := 'Samstag';
  Datum := StrToDate(Edit1.Text);
  edit2.Text := days[DayOfWeek(Datum)];

end;


Luncustaf - Mo 14.04.03 15:24

naja aber woher weis ich das zb der 14/04/2003 ein montag ist? das weis ich weil ich auffen kalender schauen kann :D

aber woher soll das der rechner wissen?

*mal die hilfe lesen geh*

thx 4 answer

gr€€tz


wulfskin - Mo 14.04.03 17:24

Luncustaf hat folgendes geschrieben:
naja aber woher weis ich das zb der 14/04/2003 ein montag ist? das weis ich weil ich auffen kalender schauen kann :D

aber woher soll das der rechner wissen?

*mal die hilfe lesen geh*

thx 4 answer

gr€€tz
Also der Rechner weiss das, weil ihm irgendjemand mal gesagt hat, das der 1. April 1930 ein Montag war und da der Rechner rechnen kann, weiss er auch das heute Montag ist.
So einfach ist das!