How to derive date for Monday from the given week number?

Hi All,

There is a week number given and i need to find the starting date(i.e, Monday date) for that particular week. Can anyone help me with this.

Jeny Jasmine

Code in C#

 public static DateTime FirstDateOfWeekISO8601(int year, int weekOfYear)
            DateTime jan1 = new DateTime(year, 1, 1);
            int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek;

            // Use first Thursday in January to get first week of the year as
            // it will never be in Week 52/53
            DateTime firstThursday = jan1.AddDays(daysOffset);
            var cal = CultureInfo.CurrentCulture.Calendar;
            int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

            var weekNum = weekOfYear;
            // As we're adding days to a date in Week 1,
            // we need to subtract 1 in order to get the right date for week #1
            if (firstWeek == 1)
                weekNum -= 1;

            // Using the first Thursday as starting week ensures that we are starting in the right year
            // then we add number of weeks multiplied with days
            var result = firstThursday.AddDays(weekNum * 7);

            // Subtract 3 days from Thursday to get Monday, which is the first weekday in ISO8601
            return result.AddDays(-3);
1 Like

Hey @jeny

You can refer to an old existing Thread for your reference: - Date of Monday in the current week

Note:- Search forum before posting your queries, In most of the cases you will find an existing solution thread on the forum :slight_smile:


1 Like

Thanks Akshay and Karthik…will try the above solutions…!!