2009

Aug

03

Räkna med veckonummer

av Rolf

Ibland är det praktiskt att ange veckonummer istället för datum, och tvärtom kunna veta vilka datum ett visst veckonummer infaller. FileMaker har numera en inbyggd funktion för att beräkna veckonummer från ett datum enligt ISO-standard.

Enligt ISO-standard är vecka 1 på ett år den första vecka som innehåller minst 4 dagar på det nya året. Det gör att det ibland förekommer att första dagarna på ett år är i vecka 52 eller 53, eller att de sista dagarna på året är vecka 1.

Funktionen heter WeekOfYearFiscal och har 2 argument, datumet förstås men också vilken veckodag som en vecka börjar med (det är som bekant lite olika i olika länder). I Sverige börjar veckan med måndag och då anges alltid värdet 2 som det andra argumentet.

T.ex. ger WeekOfYearFiscal("2008-12-29";2) resultatet 1, medan WeekOfYearFiscal("2008-12-28";2) ger resultatet 52.

Andra hållet, dvs. från ett givet veckonummer få t.ex. första datumet i veckan, kräver lite mer tankearbete. Följande formel kan användas (med Datum som beräkningsresultat) om årtalet finns i fältet År och veckonumret i fältet Vecka:

Måndag =
Let([
Jan1 = Date(1; 1; År)
];
Jan1 - DayOfWeek (Jan1) + 2 + If(WeekOfYearFiscal(Jan1; 2) = 1; 0; 7)
+ (Vecka - 1)*7
)

Formeln beräknar först datumet för 1 jan för aktuellt årtal till en variabel (Jan1). För att få fram måndagen i veckan med 1 jan drar jag bort veckodagen, korrigerar för att veckan startar på en måndag (2), korrigerar om veckonumret för 1 jan är 52 eller 53 och lägger till sist till antal veckor.

Om fältet År innhåller 2009 och Vecka innehåller 32 blir resultatet "2009-08-03".
 

Kategorier: ,

Comments (2) -

9/30/2009 2:38:43 PM #

Mihai

Tack så mycket, Rolf. I FileMaker:s bok om funktioner nämns WeekOfYearFiscal inte, men jag hade tur att hitta ditt inlägg.

Mihai Sweden

9/30/2009 3:25:31 PM #

Mihai

Nu ser jag att funktionen också visas i boken. Men tack för dina detajlerade förklaringar i alla fall.

Mihai Sweden

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading


Arkiv