webForumDet fria alternativet

Veckodag från veckonummer

.NETur .NET

1 svar · 338 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Frågan#1

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)
Medlem sedan mars 20011 346 inlägg
#2

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?

128 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)