Jag har letat i dokumentationen men kan inte hitta någon funktion för att få fram ett veckonummer ur ett datum (DateTime). Någon som har en färdig liggandes på lager eller kan skicka mig i rätt riktning? Här är ett i JavaScript: http://pellesoft.se/communicate/forum/view.aspx?msgid=171934&forumid=42&sum=0 Titta på metoden System.Globalization.Calendar.GetWeekOfYear. Det är CalendarWeekRule.FirstFourDayWeek och DayOfWeek.Monday du ska använda för att få rätt vecka i Sverige. Postade fel länk.. > Här är en användbar dock: http://konsulent.sandelien.no/VB_help/Week/ Okej, så här blev min funktion. :)Veckonummer
Sv: Veckonummer
Sv: Veckonummer
Sv: Veckonummer
Här är en användbar dock: http://konsulent.sandelien.no/VB_help/Week/Sv:Veckonummer
Intressant... Håller på och tittar på det där...
Det var ju lite intressant kod i den där funktionen i varje fall:
StartWeekDayOfYear = StartWeekDayOfYear;
EndWeekDayOfYear = EndWeekDayOfYear;
;)Sv: Veckonummer
public static int WeekOfYear(DateTime date) {
DateTime first, start;
int year;
year = date.Year + 1;
do {
first = new DateTime(year--, 1, 1);
start = first.AddDays(3 - (((int)first.DayOfWeek + 2) % 7));
} while (date < start);
return ((int)date.Subtract(start).TotalDays) / 7 + 1;
}
Först fick jag exakt samma fel som Calendar gör, men det var inte fel på algoritmen i sig, det var bara att köra samma koll på nästa år också. Antagligen samma fel som de gjort i Calendar...
Samma bugg (eller en bugg med samma resultat) fanns för övrigt redan i DatePart-funktionen i VBScript. Det verkar som om de använd samma algoritm som där utan att rätta den bugg som de faktiskt vetat om länge...