Jan
4
2010

Ta fram veckans nummer med asp.net c#


Att fram veckonummer kan vara klurig när man inser att det inte finns något stöd för veckor i datatypen DateTime.

Istället för att implementera en egen funktion som räknar ut veckans nummer (1-53) så går det att använda CultureInfo‘s Calendar som återfinns i System. Globalization.

public static int getWeekOfYear(DateTime date) {

int week = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
return week;
}

Funktionens parametrar kan ändras beroende på hur man definerar när veckorna börjar om och vilken veckodag veckorna börjar med.

4 Kommentarer + Lämna en kommentar

  • Hittade nedan som kanske kan vara av intresse för svenska veckonummer:

    http://blogg.joakimsunden.se/2006/02/fel-veckonummer-med-net-frameworks.html

    • Intressant. Jag har dock inte upplevt att min kod inte fungerar för svenska veckonummer.

  • Kör detta jag får dock problemet att veckorna inte slutar vid 53 utan fortsätter till 54,55,56,57,58 osv

  • Fint, kombinera med denna lilla metod så får man enkelt antalet veckor för ett givet år

    private int getNoWeeks(int year)
    {
    return getWeekOfYear(new DateTime(year, 12, 31));
    }

Lämna en kommentar

Relaterat

Övrigt

  • Internet bloggar
  • Internet