Showing results for 
Search instead for 
Did you mean: 
Frequent Visitor

How to calculate week number?

Im creating a small booking app, where the users are used to Weeknumbers.


Is it posible to spesify like :


Week : 5  

Result would be : 30/1-2017 - 5/2-2017


Or vice versa,

Spesify the date and then get the current weeknumber.


This allso has to adjust for leap year.


Best Regards



Hi Jeff, @jeffwllms 


I'm trying to use your solution which seems to work brilliant if you want week number 1 to be the 1st week in Jan, however i'm wanting to use this method where the week number starts with week 1 on the 1st week of April  (ie in 2020 week 1 would be the week commencing monday the 30th March)


I have tried playing about with the formula but cant work it or or adjust it.  Wondered if you knew if there was an answer to this as you seem very good at working with this function!! 🙂



Advocate II
Advocate II

Wondering why there isn't out of the box function for Week Number in a Calculated field when the function exists in Charts as a selectable Series for X-Axis and selectable in the Calendar date picker:

Calendar date pickerCalendar date pickerChart with Week numbersChart with Week numbers

Sorry, I have not been paying that close attention to the thread lately.  I am not sure if you figured out an answer but it think it should be as easy as changing the month and day in the first part of the formula.  



RoundDown((DateDiff(Date(Year(DateAdd(DatePicker1.SelectedDate,4 - Weekday(DatePicker1.SelectedDate,Monday),Days))-1,12,31),DateAdd(DatePicker1.SelectedDate,4 - Weekday(DatePicker1.SelectedDate,Monday),Days),Days)+6)/7,0)


so in the original formula where you see the 12,31.   this calculate the date last day of the year prior to your date.  the formula takes the different of those and basically divides it by seven.  So you should just be able to change that.  march is the 3rd month and there are 31 days in march. 


new formula:


RoundDown((DateDiff(Date(Year(DateAdd(DatePicker1.SelectedDate,4 - Weekday(DatePicker1.SelectedDate,Monday),Days))-1,3,31),DateAdd(DatePicker1.SelectedDate,4 - Weekday(DatePicker1.SelectedDate,Monday),Days),Days)+6)/7,0)



I haven't tested it, but I would give that a try.



okay so after i posted this I decided to test it really quick, because I figured no way it is that simple. And it doesn't appear to be  as simple.  The problem is in the start date year.  I use -1 here as I am always counting the number of day from 12/31 of the year prior to my selected date.  You are not.  For example, if you select the date 12/31/20 you don't want to -1, because you would be then calculating the number of days between 3/31/2019 and 12/31/2020.  So additionally with the change I put above.  You will need to work out some logic to figure out if you need to -1 or not from the selected date.  So I worked out the following, it isn't as pretty, might be able to be simplified. 


RoundDown((DateDiff(Date(Year(DateAdd(DatePicker1.SelectedDate,4-Weekday(DatePicker1.SelectedDate,Monday),Days))-If(DateAdd(DatePicker1.SelectedDate,4-Weekday(DatePicker1.SelectedDate,Monday),Days) < Date(Year(DateAdd(DatePicker1.SelectedDate,4-Weekday(DatePicker1.SelectedDate,Monday),Days)),3,31),1,0),3,31),DateAdd(DatePicker1.SelectedDate,4-Weekday(DatePicker1.SelectedDate,Monday),Days),Days)+6)/7,0)


Thanks for your reply, i'm not quite sure how/why this works, but it does anyway and i got to this by just playing about with the formula and added in a "-83" in 2 places. Code below - How does this look to you?

RoundDown((DateDiff(Date(Year(DateAdd(DatePicker1.SelectedDate,-83 - Weekday(DatePicker1.SelectedDate,Monday),Days))-1,12,31),DateAdd(DatePicker1.SelectedDate,-83 - Weekday(DatePicker1.SelectedDate,Monday),Days),Days)+6)/7,0)


Advocate II
Advocate II

Thanks for the updates, in the end I created a Flow to create this week number.

I did get communication from MS PM back in Sept, that Week Number functionality in low code was not planned but could get reviewed. I'll ping him again to check how this is being prioritised.

There is a much simpler way of doing this using the fact that that Value(Today()) returns an integer that is in milliseconds, so the following gives you the week number - just change the StartOfWeek.Monday to whatever you need - this formula assumes you have the date you want to convert stored in varDate.

        ((Value(Date(Year(varDate),Month(varDate),Day(varDate))) - Value(Date(Year(varDate),1,1))) / 86400000) // Days into year
        + Weekday(Date(Year(varDate),1,1),StartOfWeek.Monday) // Offset for day of week on 1st Jan
    ) / 7 // Divide by days in a week
    ,0) // Round Up to get the week number (e.g. if 2.5 - it means we are half way through the 3rd week, so return 3)


Advocate IV
Advocate IV

Why not use?



Hi GrischkePro - Can you use the above Fx to specify a week start day and date? - for example, i needed week 1 to be the week starting the first Monday in April and run from Monday-Sunday. - I don't believe you can/could do that with the WeekNum function, although i don't believe i tried. 

@d3ell Yes you can




But not sure about your case where the year starts in April in which case more tweaking will be required. 

Helper V
Helper V

OK, yeah I think that is the difficult part in order to get the 1st monday of April.

What we came up with works, its just a long formula so if it can be streamlined i'm more than happy to take a look.


Helpful resources

Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Top Kudoed Authors
Users online (3,205)