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

#### Tuesday Tip | How to Get Community Support

It's time for another Tuesday Tip, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community.       This Week: All About Community Support Whether you're a seasoned community veteran or just getting started, you may need a bit of help from time to time! If you need to share feedback with the Community Engagement team about the community or are looking for ways we can assist you with user groups, events, or something else, Community Support is the place to start.   Community Support is part of every one of our communities, accessible to all our community members.   Within each community's Community Support page, you'll find three distinct areas, each with a different focus to help you when you need support from us most. Power Apps: https://powerusers.microsoft.com/t5/Community-Support/ct-p/pa_community_support Power Automate: https://powerusers.microsoft.com/t5/Community-Support/ct-p/mpa_community_support Power Pages: https://powerusers.microsoft.com/t5/Community-Support/ct-p/mpp_community_support Copilot Studio: https://powerusers.microsoft.com/t5/Community-Support/ct-p/pva_community-support   Community Support Form If you need more assistance, you can reach out to the Community Team via the Community support form. Choose the type of support you require and fill in the form accordingly. We will respond to you promptly.    Thank you for being an active part of our community. Your contributions make a difference!   Best Regards, The Community Management Team

#### Hear what's next for the Power Up Program

Hear from Principal Program Manager, Dimpi Gandhi, to discover the latest enhancements to the Microsoft #PowerUpProgram, including a new accelerated video-based curriculum crafted with the expertise of Microsoft MVPs, Rory Neary and Charlie Phipps-Bennett. If you’d like to hear what’s coming next, click the link below to sign up today! https://aka.ms/PowerUp