cancel
Showing results 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

Raymond

40 REPLIES 40
Post Patron

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!! 🙂

thanks

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 pickerChart with Week numbers

Frequent Visitor

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.

original:

``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.

--Update--

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.

update:

``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)``

Post Patron

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)``

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.

Memorable Member

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.

``````    RoundUp((
((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)``````

hth
Scott

Why not use?

``WeekNum(Today())``

Post Patron

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

``WeekNum(Today(),Monday)``

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

Post Patron

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.

Announcements

#### April 4th Copilot Studio Coffee Chat | Recording Now Available

Did you miss the Copilot Studio Coffee Chat on April 4th? This exciting and informative session with Dewain Robinson and Gary Pretty is now available to watch in our Community Galleries!   This AMA discussed how Copilot Studio is using the conversational AI-powered technology to aid and assist in the building of chatbots. Dewain is a Principal Program Manager with Copilot Studio. Gary is a Principal Program Manager with Copilot Studio and Conversational AI. Both of them had great insights to share with the community and answered some very interesting questions!     As part of our ongoing Coffee Chat AMA series, this engaging session gives the Community the unique opportunity to learn more about the latest Power Platform Copilot plans, where we’ll focus, and gain insight into upcoming features. We’re looking forward to hearing from the community at the next AMA, so hang on to your questions!   Watch the recording in the Gallery today: April 4th Copilot Studio Coffee Chat AMA