Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi datetimepicker.date in schleife verwenden (https://www.delphipraxis.net/7431-datetimepicker-date-schleife-verwenden.html)

jschade 12. Aug 2003 09:34


datetimepicker.date in schleife verwenden
 
hi leute,

ich will einen kalender generieren und in eine accessdb schreiben. der zeitraum für den kalender soll durch zwei datetimepicker ausgewählt werden.
dann soll für jeden tag im zeitraum ermittelt werden was es für ein tag ist(mo,di,mi,do,fr,sa,so).will nämlivh herausfinden, ob es sich hierbei um einen arbeitstag handelt...

leider scheiter ich schon das erste mal, wenn ich die datetimepicker.date zuweisen will. ich weiß, dass es datetostr() gibt, aber für die schleife brauche ich doch integer, oder?

Code:
procedure TForm.Button1Click(Sender: TObject);
var von, bis :Integer;

begin
von := DateTimePicker2.Date;
bis := DateTimePicker3.Date;

while von < bis do
  begin
  ...
  // von hochzählen
  end;      
end;

Tpercon 12. Aug 2003 09:58

Re: datetimepicker.date in schleife verwenden
 
Für den Wochentag gibt es die DayOfWeek Funktion.

Ansonsten kannst du es einfach wie ein integer hochzählen:
Delphi-Quellcode:
procedure TForm.Button1Click(Sender: TObject);
var von, bis :Integer;

begin
von := DateTimePicker2.Date;
bis := DateTimePicker3.Date;

while von < bis do
  begin
  ...
    Inc(von);
  end;      
end;

alcaeus 12. Aug 2003 10:05

Re: datetimepicker.date in schleife verwenden
 
So gehts:
Code:
procedure TForm.Button1Click(Sender: TObject);
begin
  while DateTimePicker2.Date < DateTimePicker3.Date do
    DateTimePicker2.Date := DateTimePicker2.Date+1;
end;
Ein TDateTime-Wert gibt an wie viele Tage seit dem 30.12.1899 vergangen sind. Das heißt, eine Erhöhung dieses INTEGER-Werts um 1 bedeutet eine Erhöhung um 1 Tag. Die Zeit wird dann in Dezimalstellen angegeben (0.5=12h), nur falls es dich interessiert

jschade 12. Aug 2003 10:25

Re: datetimepicker.date in schleife verwenden
 
Zitat:

Zitat von Tpercon
Für den Wochentag gibt es die DayOfWeek Funktion.

damit bekomme ich ja nen wert vom typ word. wie kann ich das zum beispiel in ner label.caption (vom typ string) anzeigen lassen?

Tpercon 12. Aug 2003 10:30

Re: datetimepicker.date in schleife verwenden
 
Schau mal was die OH dazu sagt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var
  ADate: TDateTime;
  days: array[1..7] of string;
begin
  days[1] := 'Sunday';
  days[2] := 'Monday';
  days[3] := 'Tuesday';
  days[4] := 'Wednesday';
  days[5] := 'Thursday';
  days[6] := 'Friday';
  days[7] := 'Saturday';
  ADate := StrToDate(Edit1.Text);
  ShowMessage(Edit1.Text + ' is a ' + days[DayOfWeek(ADate)];
end;

jschade 12. Aug 2003 10:51

Re: datetimepicker.date in schleife verwenden
 
Zitat:

Zitat von Tpercon
Ansonsten kannst du es einfach wie ein integer hochzählen:

Delphi-Quellcode:
procedure TForm.Button1Click(Sender: TObject);
var von, bis :Integer;

begin
von := DateTimePicker2.Date;
bis := DateTimePicker3.Date;

while von < bis do
  begin
  ...
    Inc(von);
  end;      
end;

funktioniert so nicht, bekomme immer ne fehlermeldung wegen dem hochzählen: " der linken seite kann nichts zugewiesen werden "

Duffy 12. Aug 2003 10:54

Re: datetimepicker.date in schleife verwenden
 
Hallo jschade,
so mußt Du es machen
Delphi-Quellcode:
von := von + 1;
bye

Tpercon 12. Aug 2003 10:58

Re: datetimepicker.date in schleife verwenden
 
War ungetestet, mußt du so (wie alcaeus) machen:
Delphi-Quellcode:
var von, bis: TDateTime;
begin
  von := DateTimePicker1.Date;
  bis := DateTimePicker2.Date;
  while von < bis do begin
    von := von + 1;
  end;

TimmA 12. Aug 2003 11:26

Re: datetimepicker.date in schleife verwenden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Huhu,

habe mal was zusammengebastelt .
Hoff du kannst damit etwas anfangen.
Viel Spaß ...




Gruss TimmA.

jschade 15. Aug 2003 19:07

Re: datetimepicker.date in schleife verwenden
 
danke leute,

wusste nur nicht, dass man mit date-variablen so rechnen kann wie mit integer. so funzt es natürlich auch bei mir :wink:


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