---
title: "Veckodag från veckonummer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/143397-veckodag-från-veckonummer"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "ironhead"
published: "2006-03-04T21:34:53.000Z"
updated: "2006-03-05T11:00:31.000Z"
replies: 1
views: 345
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/dotnet/143397-veckodag-från-veckonummer"
---

# Veckodag från veckonummer

## #1 — ironhead, 2006-03-04T21:34Z

Hej!

Kan man på något enkelt sätt få ut Måndagens & Fredagens datum utifrån ett veckonummer?

Jag använder denna kod för att få ut veckonumret

```
        Dim gc As GregorianCalendar = New GregorianCalendar
        Dim Week As Integer = gc.GetWeekOfYear(Datum, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)
```

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

## #2 — ironhead, 2006-03-05T11:00Z

Har hittat denna funktion, men får den inte att fungera:

```
    Function GetFirstDayOfWeek(ByVal year As Integer, ByVal week As Integer) As Date
        Dim dateTimeFormat As DateTimeFormatInfo = Culture.CurrentCulture
        Dim cal As Calendar = dateTimeFormat.Calendar
        Dim dt As Date
        Try
            If week >= 1 AndAlso week <= 53 Then
                dt = New Date(year, 1, 1)
                dt = dt.AddDays(-7) ' Ensure that we start before the first week
                Dim weekOfYear As Integer = cal.GetWeekOfYear(dt, dateTimeFormat.CalendarWeekRule, dateTimeFormat.FirstDayOfWeek)
                While weekOfYear <> 1
                    dt = dt.AddDays(1)
                    weekOfYear = cal.GetWeekOfYear(dt, dateTimeFormat.CalendarWeekRule, dateTimeFormat.FirstDayOfWeek)
                    ' The following is a workaround for the bug described in Q200299,
                    ' which is still present in .NET
                    If weekOfYear = 53 AndAlso cal.GetWeekOfYear(dt.AddDays(7), dateTimeFormat.CalendarWeekRule, dateTimeFormat.FirstDayOfWeek) = 2 Then
                        weekOfYear = 1
                    End If
                End While
                dt = dt.AddDays((week - 1) * 7)
                weekOfYear = cal.GetWeekOfYear(dt, dateTimeFormat.CalendarWeekRule, dateTimeFormat.FirstDayOfWeek)
                ' The following is a workaround for the bug described in Q200299,
                ' which is still present in .NET
                If weekOfYear = 53 AndAlso cal.GetWeekOfYear(dt.AddDays(7), dateTimeFormat.CalendarWeekRule, dateTimeFormat.FirstDayOfWeek) = 2 Then
                    weekOfYear = 1
                End If
                If weekOfYear = week Then
                    Return dt
                End If
            End If
        Catch e As Exception
        End Try
        Return Date.MinValue
    End Function
```

 

Får följande fel:
Dim dateTimeFormat As DateTimeFormatInfo = Culture.CurrentCulture \<-- Property Culture is write only

Dim cal As Calendar = dateTimeFormat.Calendar \<-- System.Globalization.Calendar cannot be converted to Projekt1.Calendar

cal.GetWeekOfYear \<-- is not a member of Projekt1.Calendar
 

Nån som kan hjälpa mig?

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/143397-veckodag-från-veckonummer
