Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - DayOfWeek() liefert falsche Ergebnisse [DONE]
kiwicht - Mo 23.06.03 07:49
Titel: DayOfWeek() liefert falsche Ergebnisse [DONE]
Hab folgendes Problem:
Auf Knopfdruck wird aus einem Edit-Feld eine Variabe ausgelesen. Diese Variable soll insgesamt 6 mal inkrementiert werden, und auf 7 Panels jeweils ein fortlaufendes Datum anzeigen.
Quasi ein Terminkalender.
Ich nutze also folgende Prozedure:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| Datum := StrToDate(edit1.text); panel1.caption := days[DayOfWeek(Datum)] + ' - ' + DateToStr(Datum); Datum := Datum + 1; panel2.caption := days[DayOfWeek(Datum)] + ' - ' + DateToStr(Datum); Datum := Datum + 1; panel3.caption := days[DayOfWeek(Datum)] + ' - ' + DateToStr(Datum); Datum := Datum + 1; panel4.caption := days[DayOfWeek(Datum)] + ' - ' + DateToStr(Datum); Datum := Datum + 1; panel5.caption := days[DayOfWeek(Datum)] + ' - ' + DateToStr(Datum); Datum := Datum + 1; panel6.caption := days[DayOfWeek(Datum)] + ' - ' + DateToStr(Datum); Datum := Datum + 1; panel7.caption := days[DayOfWeek(Datum)] + ' - ' + DateToStr(Datum); |
"days" wird im OnCreate-Ereigniss meiner Form folgendermassen deklariert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| days : array[1..7] of String; days[1] := 'Montag'; days[2] := 'Dienstag'; days[3] := 'Mittwoch'; days[4] := 'Donnerstag'; days[5] := 'Freitag'; days[6] := 'Samstag'; days[7] := 'Sonntag'; |
Tja, und drücke ich jetzt auf den Button, nachdem ich das heutige Datum, also 23.06.2003, eingeben habe, fängt er an, die Panels zu füllen.
Soweit so gut. Aber er ordnet dem 23.06.2003 Dienstag zu.
Falsch.
Weiß einer woran das liegen könnte?
vielen Dank schonma
mfG
//EDIT
ich glaub ich hab ne Vermutung: Delphi behandelt den Sonntag als 1. Tag der Woche, und ich glaube das konnte man irgendwo einstellen.... aber wo?
MAlsleben - Mo 23.06.03 09:10
Hi,
Sonntag ist der Tag 1 usw. lt. Delphi- Hilfe.
AndyB - Mo 23.06.03 10:06
DayOfWeek ist nicht ISO 8601 konform. Die ISO 8601 konforme Funktion ist DayOfTheWeek aus der Unit DateUtils. Bei dieser ist Montag der 1. Tag in der Woche.
kiwicht - Mo 23.06.03 10:31
:D
Danke! Funzt mit DayOfTheWeek!
Fein fein!
mfg
Tweafis - Mo 23.06.03 12:43
Du hättest auch einfach dein Array umschreiben können, d.h. Als erster Tag Sonntag und so weiter.
kiwicht - Mo 23.06.03 12:45
hm.. stimmt. Aber wozu einfach machen wenns auch umständlich geht =)
Tweafis - Mo 23.06.03 12:56
Jo, gute Einstellung ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!