---
title: "Loopa ut årets alla måndagar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/182915-loopa-ut-årets-alla-måndagar"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Bosse168"
published: "2010-03-22T19:41:42.000Z"
updated: "2010-03-24T22:00:33.000Z"
replies: 3
views: 757
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/182915-loopa-ut-årets-alla-måndagar"
---

# Loopa ut årets alla måndagar

## #1 — Bosse168, 2010-03-22T19:41Z

Hallå alla kodar genier. :)
Hur gör man för att loopa ut alla årets ALLA måndagar och skriva ut datumet i en lista? Typ:

**Vill att det ska loopas ut så här:**
vecka 10 - 8:e mars
vecka 11 - 15:e mars
vecka 12 - 22:e mars
osv.

eller kan man använda koden nedan och på något magiskt snyggt sätt hämta ut veckodatumet genom att bara använda veckonumret?

```
For i = 1 to 52
Response...
Next
```

Permalänk: https://www.webforum.nu/p/182915

## #2 — lilja, 2010-03-22T20:36Z

Det enda krångliga är att hålla reda på när första veckan startar. I Sverige är det den vecka som har minst 4 dagar på det nya året. 1-3 januari kan alltså vara v53. Efter det är det ju bara att addera 7 dagar i en loop.

Permalänk: https://www.webforum.nu/p/2231517

## #3 — Bosse168, 2010-03-24T19:28Z

ok, fattar fortfarande inte hur du menar. :/

Permalänk: https://www.webforum.nu/p/2231667

## #4 — lilja, 2010-03-24T22:00Z

Hmm, krångligt att förklara så jag tar några exempel. Måndag vecka 1 och januari 2013 har datumet 31 december. Måndag vecka 1 under 2009 var den 29 december. Första måndagen 2009 tillhör därför vecka 2.

Alltså, vill du ha med måndag vecka 1 eller vill du ibland börja på vecka 2 eftersom första måndagen på året ibland är vecka 2?

Här kommer en kodsnutt som skriver ut datumet för alla veckornas måndagar ett visst år.

```
'----- If january 1st is first week
If DatePart("ww", currentDate, vbMonday, vbFirstFourDays) = 1 Then
	'----- Yes, loop backwards until we reach the monday of that week
	While DatePart("w", currentDate, vbMonday, vbFirstFourDays) <> 1
		currentDate = DateAdd("d", -1, currentDate)
	Wend
Else
	'----- No, loop forward until we reach the monday of the next week (first week)
	While DatePart("w", currentDate, vbMonday, vbFirstFourDays) <> 1
		currentDate = DateAdd("d", 1, currentDate)
	Wend
End If

'----- Loop weeks until new year
lastWeek = 0
While lastWeek < DatePart("ww", currentDate, vbMonday, vbFirstFourDays)
	lastWeek = DatePart("ww", currentDate, vbMonday, vbFirstFourDays)
	Response.Write("vecka " & DatePart("ww", currentDate, vbMonday, vbFirstFourDays) & " - " & Day(currentDate) & " " & MonthName(Month(currentDate), False) & "<br />")
	currentDate = DateAdd("ww", 1, currentDate)
Wend
```

Ex (2009):
vecka 1 - 29 december
vecka 2 - 5 januari
vecka 3 - 12 januari
vecka 4 - 19 januari

Om du bara vill ha årets dagar blir det något enklare kod

```
'----- Loop forward until we reach the monday of the next week (first week)
While DatePart("w", currentDate, vbMonday, vbFirstFourDays) <> 1
	currentDate = DateAdd("d", 1, currentDate)
Wend

'----- Loop weeks until new year
lastWeek = 0
While lastWeek < DatePart("ww", currentDate, vbMonday, vbFirstFourDays)
	lastWeek = DatePart("ww", currentDate, vbMonday, vbFirstFourDays)
	Response.Write("vecka " & DatePart("ww", currentDate, vbMonday, vbFirstFourDays) & " - " & Day(currentDate) & " " & MonthName(Month(currentDate), False) & "<br />")
	currentDate = DateAdd("ww", 1, currentDate)
Wend
```

Ex (2009):
vecka 2 - 5 januari
vecka 3 - 12 januari
vecka 4 - 19 januari
vecka 5 - 26 januari

Permalänk: https://www.webforum.nu/p/2231681

---

Tråden på webben: https://www.webforum.nu/amne/asp/182915-loopa-ut-årets-alla-måndagar
