AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kalenderwoche aus Datum ermitteln

Ein Thema von FBrust · begonnen am 10. Feb 2003 · letzter Beitrag vom 11. Feb 2003
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

Kalenderwoche aus Datum ermitteln

  Alt 10. Feb 2003, 21:15
Hallo,

weiß jemand, wie man aus einem gegebenen Datum die dazugehörige Kalenderwoche ermittelt?

Grüsse
Frank
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#2
  Alt 10. Feb 2003, 21:53
Das sollte funktionieren:

Code:
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;
Gruß Yheeky
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#3
  Alt 10. Feb 2003, 22:04
Hallo Yheeky,

funktioniert, vielen Dank!!

Grüsse
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Kalenderwoche aus Datum ermitteln

  Alt 11. Feb 2003, 08:58
Zitat von FBrust:
Hallo,

weiß jemand, wie man aus einem gegebenen Datum die dazugehörige Kalenderwoche ermittelt?

Grüsse
Frank
Hai,

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;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#5
  Alt 11. Feb 2003, 12:21
Zitat Delphi OH:

Zitat:
Die Funktion WeekOfTheYear gibt die Woche des Jahres zurück, das durch einen TDateTime-Wert repräsentiert wird.

Unit

DateUtils

Kategorie

Datum/Zeit

function WeekOfTheYear(const AValue: TDateTime): Word; overload;
function WeekOfTheYear(const AValue: TDateTime; var AYear): Word; overload;

Beschreibung

Mit WeekOfTheYear können Sie die Woche des Jahres ermitteln, das durch den angegebenen TDateTime-Wert repräsentiert wird. WeekOfTheYear gibt einen Wert zwischen 1 und 53 zurück.

AYear gibt das Jahr mit der angegebenen Woche zurück. Dieser Wert darf nicht mit dem Jahr in AValue identisch sein. Der Grund liegt darin, daß die erste Woche eines Jahres als erste Woche definiert ist, von der mindestens vier Tage in das betreffende Jahr fallen. Ist also der erste Kalendertag eines Jahres der Freitag, Samstag oder Sonntag, gibt WeekOfTheYear für die ersten drei oder zwei Tage oder für den ersten Tag des Kalenderjahres die Woche des vorhergehenden Jahres zurück. Entsprechendes gilt am Jahresende: Ist der letze Kalendertag eines Jahres ein Montag, Dienstag oder Mittwoch, gibt WeekOfTheYear für die letzten drei oder zwei Tage bzw. den letzten Tag des Kalenderjahres den Wert 1 (erste Woche des nächsten Kalenderjahres) zurück.

Hinweis: WeekOfTheYear verwendet die Wochendefinition des ISO-Standards 8601. Demzufolge beginnt eine Woche am Montag und endet am Sonntag.
Hinweis: WeekOfTheYear gibt den gleichen Wert wie die Funktion WeekOf zurück.
MfG Hitzi
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6
  Alt 11. Feb 2003, 12:26
Hallo,

Zitat von hitzi:
WeekOfTheYear
erst ab D7 (evtl. D6?)!

Der Fragesteller hat aber (nur) D5, also nützt ihm Dein Tipp wenig
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#7
  Alt 11. Feb 2003, 12:37
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
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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