AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Start- und Enddatum einer Kalenderwoche ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Start- und Enddatum einer Kalenderwoche ermitteln

Ein Thema von JesterX · begonnen am 15. Dez 2003 · letzter Beitrag vom 16. Dez 2003
Antwort Antwort
JesterX

Registriert seit: 25. Jul 2003
Ort: Oldenburg, Niedersachsen
5 Beiträge
 
Delphi 6 Professional
 
#1

Start- und Enddatum einer Kalenderwoche ermitteln

  Alt 15. Dez 2003, 14:34
Hallo zusammen,

ich möchte aus einer Datenbank bestimmte Records raussuchen, die innerhalb einer bestimmten Kalenderwoche liegen.
Der User soll lediglich KW 1 bis 52 eingeben müssen und mein Query soll dann das jeweilige Start- und Enddatum der Abfrage selbst ermitteln. Hat jemand eine Ahnung wie ich das anstellen könnte?

Gruss
Holger
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Start- und Enddatum einer Kalenderwoche ermitteln

  Alt 15. Dez 2003, 14:42
Hallo JesterX,

schau mal in der Delphi Online-Hilfe (OH) unter der Unit DateUtils nach den Funktionen StartOfTheWeek und EndOfTheWeek nach. Ich bin mir leider nicht ganz sicher, ob diese Routinen bei D6 vorhanden sind (bei D5 jedenfalls nicht).

EDIT: Ups, tatsächlich müssen die Funktionen mit dem unbestimmten Artikel verwendet werden: StartOfAWeek bzw EndOfAWeek...
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Start- und Enddatum einer Kalenderwoche ermitteln

  Alt 15. Dez 2003, 14:42
Hallo,

welche Datenbank bzw. welche Komponenten verwendest du?
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#4

Re: Start- und Enddatum einer Kalenderwoche ermitteln

  Alt 15. Dez 2003, 14:44
Weil Weihnachten naht () ,als Ansatz hier ein bisserl source von mir, den Rest (Umkehrung von GetKalenderwoche) mußt Du Dir dann selbst basteln
Delphi-Quellcode:
function VierterJanuar(DasDatum : TDate):TDate;
begin
  Result := StrToDate('04.01.'+copy(DateToStr(DasDatum),7,MaxInt));
end;

function MyDayOfWeek(DasDatum: TDateTime):Integer;
begin
  Result := IntIf((DayOfWeek(DasDatum)-1 > 0),DayOfWeek(DasDatum)-1,7);
end;

function GetKalenderWoche(DasDatum:TDateTime): Integer;
var ErsterMontag : TDate;
begin
  ErsterMontag := VierterJanuar(DasDatum)-MyDayOfWeek(VierterJanuar(DasDatum))+1;
  if DasDatum < ErsterMontag
    then ErsterMontag := VierterJanuar(DasDatum-10)-MyDayOfWeek(VierterJanuar(DasDatum-10))+1;
  Result := (trunc(DasDatum-ErsterMontag) div 7)+1;
  if Result = 53 then begin
    if (DasDatum-MyDayOfWeek(DasDatum)+1) = (VierterJanuar(GetLastDay(DasDatum)+1)-MyDayOfWeek(VierterJanuar(GetLastDay(DasDatum)+1))+1)
    then Result := 1;
  end;
end;
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#5

Re: Start- und Enddatum einer Kalenderwoche ermitteln

  Alt 15. Dez 2003, 15:29
Delphi-Quellcode:
function WeekOfDate(ADate: TDateTime): Integer;
var
  Day: Integer;
  Y,M,D: Word;
begin
  Day := DayOfWeekGerman(ADate);
  DecodeDate(ADate +4 -Day, Y, M, D);
  Result := Round(((ADate +8 -Day) - EncodeDate(Y, 1, 1)) / 7);
end;

function DateOfWeek(AYear, AWeek: Word): TDateTime;
begin
  Result := EncodeDate(AYear, 1, 1);
  Result := Result - (DayOfWeek(Result -2) +3) mod 7 +3 + (AWeek -1) * 7;
end;

function WeeksOfYear(AYear: Word): Integer;
var
  D: TDateTime;
begin
  D := EncodeDate(AYear+1, 1, 1); // 1.1. des folgenden Jahres
  Result := WeekOfDate(D); // KW
  if Result = 1 then
  begin
    D := D - 7; // 1 KW zurück
    Result := WeekOfDate(D);
  end;
end;

function DayOfWeekGerman(ADate: TDateTime): Integer;
begin
  Result := DayOfWeek(ADate) -1;
  if Result <= 0 then Result := 7;
end;

function WeekStart(ADate: TDateTime; German: Boolean): TDateTime;
begin
  if German then Result := ADate - (DayOfWeekGerman(ADate) -1)
    else Result := ADate - (DayOfWeek(ADate) -1);
end;
WeekOfDate() ist die Funktion die du suchst.

Gruß Hagen
  Mit Zitat antworten Zitat
JesterX

Registriert seit: 25. Jul 2003
Ort: Oldenburg, Niedersachsen
5 Beiträge
 
Delphi 6 Professional
 
#6

Re: Start- und Enddatum einer Kalenderwoche ermitteln

  Alt 16. Dez 2003, 13:00
Besten Dank.
Ihr habt mir sehr geholfen...

Gruss
Holger

  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 15:32 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