Gå til innhold

Hvordan skaffe datoer i en uke ... VB.Net


Anbefalte innlegg

Videoannonse
Annonse

Hei.

Har laget en liten kodesnutt til deg. Denne finner datoen på den første dagen i uken ut i fra de opplysningene du har:

 

Dim myDate As New Date
Dim myYear As Integer
Dim myWeek As Integer
Dim firstDayThisWeek As Date

myYear = 2005
myWeek = 1

myDate = myDate.AddYears(myYear - 1)
myDate = myDate.AddDays((myWeek * 7) - 1)

firstDayThisWeek = myDate.AddDays(-myDate.DayOfWeek + 1)

Lenke til kommentar

Det er flere feil med løsningen i innlegget over, mest fordi man ikke vet hva som er uke nr 1 (uken til 1. januar, første hele uke, etc). Tror eksempelet under skal være riktig (jeg bruker C#, men det bør være enkelt å oversette):

 

...
using System.Globalization;

int myWeek = 4;
int myYear = 2005;

// Finn siste dag i året
DateTime lastDayOfYear = new DateTime(myYear, 12, 31);

// Finn ukedagnr. DayOfWeek gir 0 for søndag!
int dayNumber = lastDayOfYear.DayOfWeek == DayOfWeek.Sunday ? 6 : (int)lastDayOfYear.DayOfWeek - 1;

// Finn siste mandag i året
DateTime lastMonday = lastDayOfYear.AddDays(-dayNumber);

// Finn ukenr for den siste mandagen
int lastMondayWeekNumber = new GregorianCalendar().GetWeekOfYear(lastMonday, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);

// Finn datoen for mandagen i ønsket uke
DateTime myMonday = lastMonday.AddDays(-(lastMondayWeekNumber - myWeek) * 7);

 

Håper dette ble forståelig.

Øyvind

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...