Einzelnen Beitrag anzeigen

sirarcher

Registriert seit: 7. Mär 2007
22 Beiträge
 
#5

Re: Kalenderwochenberechnung USA

  Alt 26. Mai 2009, 09:40
Hi,

danke für eure Hilfe. (bzw. die Links)

Habe es nun so glaube ich gelöst:

Delphi-Quellcode:
function GetWeekNumberUS(const aDateTime: TDateTime): string;
var
  Y,M,D:Word;
  dtTmp:TDateTime;
  dtLastYear: TDateTime;
  strTempResult: string;
begin
  DecodeDate(aDateTime,Y,M,D) ;
  dtTmp := EnCodeDate(Y,1,1) ;
  strTempResult := IntToStr((Trunc(aDateTime-dtTmp)+(DayOfWeek(dtTmp)-1)) DIV 7);
  //Wenn Result = 0 dann ist es die letzte Kalenderwoche vom "Vorjahr".
  if strTempResult = '0then begin
    //Jahr um 1 verringern, da man im "letzten" Jahr die letzte Woche ermitteln muss.
    Y := Y - 1;
    //31.12 vom Vorjahr ermitteln
    dtLastYear := EnCodeDate(Y,12,31) ;
    //1.1. vom Vorjahr ermitteln
    dtTmp := EnCodeDate(Y,1,1) ;
    //KW Berechnung
    strTempResult := IntToStr((Trunc(dtLastYear-dtTmp)+(DayOfWeek(dtTmp)-1)) DIV 7);
  end;
  //Result ist genau die Kalenderwoche
  Result := strTempResult;

  //Oder wenn man will mit Jahreszahl formatiert
  if StrToInt(strTempResult) < 10 then strTempResult := '0' + strTempResult;
  Result := FormatDateTime('yyyy',dtTmp) + 'W' + strTempResult;
end;
Nochmals DANKE! Grüße
  Mit Zitat antworten Zitat