Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Erster $Wochentag im Monat (https://www.delphipraxis.net/90838-erster-%24wochentag-im-monat.html)

DGL-luke 24. Apr 2007 16:28


Erster $Wochentag im Monat
 
Hallo,

stimmt das so?

Delphi-Quellcode:
function GetFirstWeekDayInMonth(Month: TDateTime,WeekDay: 1..7): Integer;
var
  FirstDay : Integer;
begin
  FirstDay := DayOfTheWeek(RecodeDay(Month,1));
  Result := WeekDay - FirstDay;
end;
Ich hab das ganze als Zweizeiler in nem Programm, das noch ziemlich wachsen wird, und möchte nicht Gefahr laufen, durch nen Fehler da mir alles zu zerhauen und das dann ewig nicht zu finden...

bernau 24. Apr 2007 17:14

Re: Erster $Wochentag im Monat
 
Zitat:

Zitat von DGL-luke
Delphi-Quellcode:
function GetFirstWeekDayInMonth(Month: TDateTime,WeekDay: 1..7): Integer;
var
  FirstDay : Integer;
begin
  FirstDay := DayOfTheWeek(RecodeDay(Month,1));
  Result := WeekDay - FirstDay;
end;

Was passiert, wenn FirstDay > Weekday. Dann erhälst du ein negatives Ergebnis. Ist das beabsichtigt? Muss das abgefangen werden?

Was bewirkt WeekDay?


Gerd

DGL-luke 24. Apr 2007 18:26

Re: Erster $Wochentag im Monat
 
Hallo,

is völlig egal: Delphi-Referenz durchsuchenEncodeDayOfWeekInMonth :)

jmit 24. Apr 2007 20:01

Re: Erster $Wochentag im Monat
 
Hallo,

Zitat:

Zitat von DGL-luke
Hallo,

is völlig egal: Delphi-Referenz durchsuchenEncodeDayOfWeekInMonth :)

Die Funktion "EncodeDayOfWeekInMonth" gehört laut meiner Suche zu der Unit DateUtils.
Gibt es da Unterschiede zwischen der Unit DateUtils zwischen den Delphi-Versionen?
Auf der Web-Site Delphi Basics wird diese Funktion bei DateUtils nicht mit aufgeführt.

Gruß Jörg

DGL-luke 26. Apr 2007 16:37

Re: Erster $Wochentag im Monat
 
Zitat:

Zitat von BDS 2006 Online-Hilfe
EncodeDayOfWeekInMonth Routine

Gibt einen TDateTime-Wert zurück, der einen bestimmten Wochentag in einem angegebenen Monat und Jahr repräsentiert.

Unit
DateUtils

Syntax


Delphi-Quellcode:
 function EncodeDayOfWeekInMonth(const AYear: Word; const AMonth: Word; const ANthDayOfWeek: Word; const ADayOfWeek: Word): TDateTime;

Beschreibung
EncodeDayOfWeekInMonth gibt einen TDateTime-Wert für das Datum zurück, das in den Parametern AYear, AMonth, ANthDayOfWeek und ADayOfWeek übergeben wird. Der Zeitanteil des Rückgabewertes ist 0 (Mitternacht des angegebenen Tages).

AYear ist das Jahr. Zulässig sind Werte zwischen 1 und 9999 (inklusive).

AMonth gibt den Monat an. Zulässig sind Werte zwischen 1 und 12 (inklusive).

ANthDayOfWeek gibt das Vorkommen des von ADayOfWeek repräsentierten Wochentags an. Zulässig sind Werte zwischen 1 und 5 (inklusive). Der Wert muss ein gültiges Datum ergeben. Wenn Sie beispielsweise für ANthDayOfWeek den Wert 5 und für ADayOfWeek den Wert 1 angeben, obwohl der betreffende Monat nur vier Montage enthält, löst EncodeDayOfWeekInMonth eine Exception aus.

ADayOfWeek ist der Wochentag (1 für Montag, 7 für Sonntag).
Hinweis:
Die Definition für ADayOfWeek entspricht dem ISO-Standard 8601.

Tipp:
Mithilfe der Wochentagkonstanten können Sie die Aussagekraft des Rückgabewertes verbessern.




hoika 26. Apr 2007 16:47

Re: Erster $Wochentag im Monat
 
Hallo,

das ganze per dunit einfach mal mit möglichen Werten füttern,
dann "zerhaut" ein Fehler das Programm nicht,
weil er gar nicht auftritt.

Zum Testen würde ich 2 Jahre (2006, 2007) und Jan/Feb/Juni,Nov) nehmen
(31 / 28-29,30 Tage)


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz