Registriert seit: 7. Mär 2007
22 Beiträge
|
Re: Kalenderwochenberechnung USA
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 = '0' then 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
|
|
Zitat
|