Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get Current Week Number (C#)

Tags:

c#

I have been looking at Microsoft's documents and many stack overflow posts but none seem to answer my question. I want to know the simplest and easiest way to get an accurate week number for the current date in c#. I am pretty new to c# so please try and keep it simple. I have tried using:

int week = DateTime.Now.DayOfYear/7;
Console.WriteLine(week)

but on Monday (when I would like it to move onto the next week) it would show as the previous week. Eg: If the date was 21/12/2020 it would say the current week is the 50th, which is 2 weeks off. Then on 22/12/2020 it would say it is the 51st week, which is 1 week off.

Please Help & Thanks in advance.

like image 501
TheCoder76 Avatar asked Aug 27 '26 15:08

TheCoder76


1 Answers

This is probably what you are looking for:

DateTime dt = new DateTime(2020, 12, 21);
Calendar cal = new CultureInfo("en-US").Calendar;
int week = cal.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
Console.WriteLine(week);

You can change the CalendarWeekRule parameter to change the definition of the first week of the year:

FirstDay means that first week of the year can have any length. For example if the first day of the year was Sunday, it will be counted as week and the following Monday will be counted as part of second week.

FirstFourDayWeek means that the first week will be counted only if it mainly in this year. For example if the first day of the year will be Thursday the week will be counted, but if the year starts with Friday, the first week won't be counted.

FirstFullWeek means that the first week that will be counted will be the first full week of the year.

like image 55
Bonny4 Avatar answered Aug 30 '26 04:08

Bonny4



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!