![]() |
Kalenderwoche aus Datum ermitteln
Hallo,
weiß jemand, wie man aus einem gegebenen Datum die dazugehörige Kalenderwoche ermittelt? Grüsse Frank |
Das sollte funktionieren:
Code:
Gruß Yheeky
function TForm1.NumOfWeek(ADate: TDateTime): Integer;
var d,m,y,h : Word; Jan: TDateTime; Days : Integer; begin try DecodeDate(ADate, y, m, d); Jan:= EncodeDate(y, 1, 1); h:= DayOfWeek(Jan); Days:= Trunc(Int(aDate) - Jan) + 7 - DayOfWeek(ADate - 1); Inc(Days, 7 * Ord(h in [2..5])); Result := Days div 7; if Result = 0 then if (DayOfWeek(EncodeDate(Pred(y), 1, 1)) >5) or (DayOfWeek(EncodeDate(Pred(y), 12, 31)) <5) then Result:= 52 else Result:= 53 else if Result = 53 then if (h >5) or (DayOfWeek(EncodeDate(y, 12, 31)) <5) then Result:= 1; except Result := 0; end; end; |
Hallo Yheeky,
funktioniert, vielen Dank!! :P Grüsse Frank |
Re: Kalenderwoche aus Datum ermitteln
Zitat:
teste mal das hier:
Delphi-Quellcode:
function GetWeekOfYear(ADate:TDateTime):byte;
var Year,Month,Day : Word; begin ADate:=ADate-((DayOfWeek(ADate)-2+7) mod 7)+ 7-4; DecodeDate(ADate, Year, Month, Day); Result:=(Trunc(ADate-EncodeDate(Year,1,1)) div 7)+1; end; |
Zitat Delphi OH:
Zitat:
|
Hallo,
Zitat:
Der Fragesteller hat aber (nur) D5, also nützt ihm Dein Tipp wenig ;-) |
Oh, das hatte ich nicht gesehen, dass er mit Delphi 5 arbeitet.
In Delphi 6 ist aber die Funktion auch schon mit drin. Evt. auch schon in Delphi 5. Kann ich aber nicht nachprüfen. MfG Hitzi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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