cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Ryball
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

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 

DaveWa
Advocate I
Advocate I

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

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

 

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)

 

DaveWa
Advocate I
Advocate I

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.

    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

GrischkePro
Advocate III
Advocate III

Why not use?

WeekNum(Today())

 

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. 

d3ell
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

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Top Solution Authors
Top Kudoed Authors
Users online (2,868)