Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler in Kalenderfunktion (https://www.delphipraxis.net/137895-fehler-kalenderfunktion.html)

Wolfgang Mix 30. Jul 2009 15:43


Fehler in Kalenderfunktion
 
Ich möcht über eine Funktion "Test" die Wochentage einiger Neujahrdaten bestimmen.

Delphi-Quellcode:
// Fehler in Datumsfunktion

function test(year:integer):word;
var mydate: TDate;
begin
  mydate:= (EncodeDate(year,1,1));
  result:= DayOfTheWeek(mydate);
  // 5 erwartet, aber bekomme 04.01.1900 zurueck
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Label1.Caption:=DateToStr(test(2010)); // 5 = Freitag erwartet
end;
Neujahr 2010 wird ein Freitag sein, ich bekomme als Ergebis 04.01.1900 zurueck.

Was ist hier falsch?

DeddyH 30. Jul 2009 15:46

Re: Fehler in Kalenderfunktion
 
Test gibt doch eine Word zurück und kein TDate.

Wolfgang Mix 30. Jul 2009 15:50

Re: Fehler in Kalenderfunktion
 
Rückgabewert TDate liefert das gleiche Ergebnis, das hatte ich schon vorher ausprobiert

mfg

Wolfgang

DeddyH 30. Jul 2009 15:52

Re: Fehler in Kalenderfunktion
 
So klappt das bei mir:
Delphi-Quellcode:
function test(year:integer):word;
var mydate: TDate;
begin
  mydate:= (EncodeDate(year,1,1));
  result:= DayOfTheWeek(mydate);
end;

procedure TForm1.Button1Click(Sender: TObject);
const Tage: array[1..7] of string = ('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag');
begin
   Label1.Caption:=Tage[test(2010)]; // 5 = Freitag erwartet
end;

Mithrandir 30. Jul 2009 15:54

Re: Fehler in Kalenderfunktion
 
DateToStr ist in diesem Fall fehl am Platze, ein einfaches IntToStr liefert dir die gewollte 5. Um dann den Wochentag zu bekommen, siehe DeddyHs Lösung.

Wolfgang Mix 30. Jul 2009 16:00

Re: Fehler in Kalenderfunktion
 
Das war es. Ihr seid gut und schnell!

Respekt

Wolfgang


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