jeg er ikke til delphi..meeen..prøv sådan.. få fat i hvor langt inde i året dagen er .. og så div det med 7? eller sådan noget ;o) Jeg er ikke sikker..derfor dette er en kommentar ;o)
function TStdDato.StartOfWeekOne( Year : Word ) : TDateTime; const NoAdj : array[1..7] of Byte = (6,0,1,2,3,4,5); VAR D,M : Word; Nd : TDateTime; begin Nd := EnCodeDate(Year,1,1); Result := Nd-NoAdj[DayOfWeek(Nd)]; if not ( DayOfWeek(Nd) in [2..5] ) then Result := Result+7; end;
function TStdDato.WeeksOfYear( Year : Word ) : Integer; VAR D,M : Word; Nd : TDateTime; begin Nd := StartOfWeekOne(Year+1)-StartOfWeekOne(Year); Result := (StrToInt(FormatFloat(\'0\',Nd)) div 7); end;
function TStdDato.WeekNo( Dato : TDateTime ) : Integer; VAR Y,D,M : Word; begin DeCodeDate(Dato,Y,M,D); if Dato < StartOfWeekOne(Y) then Result := WeeksOfYear(Y-1) else if Dato >= StartOfWeekOne(Y+1) then Result := 1 else Result := (StrToInt(FormatFloat(\'0\',Dato-StartOfWeekOne(Y))) div 7)+1; end;
function TStdDato.IsSkudAAR( Year : Word ) : Boolean; VAR M,D : Word; Dt : TDateTime; begin M := 2; D := 28; Dt := EnCodeDate(Year,M,D); Dt := Dt+1; DeCodeDate(Dt,Year,M,D); Result := (( M = 2 ) and ( D = 29 )); end;
Det var jo det jeg tænkte, det er lavet efter Almanaken om den Gregorianske kalender, som er den vi kører med i DK, og det skulle virke, har testet en del på det ( også testet for 53 uger )
Lige et lille men .. Borland har allerede en funktion til at finde ud af om det er skudår: Den ligger i Sysutils og hedder IsLeapYear; Den er i øvrigt implemteret som følger :
function IsLeapYear(Year: Word): Boolean; begin Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0)); end;
Hej, søgte det samme som silden (maj 2001)og fik bid. Imidlertid er martinlind's svar pr. 01/05/2001 ikke uptodate, hvad angår brug af kalender i DK. Check venligst flg. link: http://www.rundetaarn.dk/dansk/observatorium/gregory.html Mvh. JK-E
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.