![]() |
Ordinaler Typ
Ich hätte da noch eine Verständnisfrage:
Delphi-Quellcode:
Z ist als TDate deklariert.
var
Jahr :Word; i,j :Integer; Jahrtagebegin, Jahrtageende, Z: TDate; begin Jahrtagebegin:=StartOfaYear(Jahr); JahrTageEnde:=EndOfAYear(Jahr); I:=0; for Z := JahrtageBegin to JahrTageEnde do begin if (DayOfTheWeek(z)=6) or (DayOfTheWeek(z)=7)then begin SG.Cells[0,i+1+j]:=IntToStr(Jahr); SG.Cells[1,i+1+j]:=DateTimeToStr(z); SG.Cells[2,i+1+j]:='Wochende'; SG.Cells[3,i+1+j]:=wochentag(DayOfTheWeek(z)); SG.Cells[4,i+1+j]:=IntToStr(WeekOf(z)); SG.Cells[5,i+1+j]:=IntToStr(z); I:=I+1; end; end; Warum kann man den nicht als Schleifenzähler nehmen? Ich wollte eine Liste aller Wochenenden haben. |
AW: Ordinaler Typ
TDate ist vom Typ TDateTime und der wiederum vom Typ double, also eine Fließkommazahl. Und eine solche kann man nicht als Schleifenvariable verwenden.
|
AW: Ordinaler Typ
Vielen Dank
jetzt wird es kompliziert. |
AW: Ordinaler Typ
Du musst ja nicht zwingend eine For-Schleife verwenden.
Delphi-Quellcode:
Etwa so zumindest müsste es auch funktionieren, ggf. musst Du noch Rundungsungenauigkeiten berücksichtigen.
Z := JahrtageBegin;
while Z < JahrTageEnde do begin ... Z := DateUtils.IncDay(Z); end; |
AW: Ordinaler Typ
Wenn man nur in Tagen Rechnet (TDate), dann kann man das auch in einen Integer umwandeln.
- vor dem Komma = Tage (Tage/Jahre/Monate) - mach dem Komma = Anteil des Tages (Stunde/Minute/Sekunde/Millisekunde) |
AW: Ordinaler Typ
Vielen Dank DeddyH und himitsu,
nun habe ich meine Tabelle. Oben stehen nun die Feiertage und angefügt daran kommen die WochenendeTage. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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