cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
DevadathanK
Advocate I
Advocate I

Displaying only the Weeks of the current month

Hi eveyone!

I have a doubt in PowerApps.

I am trying to create a PowerApp to record the working hours per week of a person.
So in the powerapp, it is supposed to show only the weeks of that particular month.

ex. If i open the powerapp now (in March)
It should display the weeks in March.

Week 10 ______
Week 11 ______
Week 12 ______
Week 13 ______
Week 14 ______

The remaining of the 52/53 weeks must be hidden/disabled.


Now the problem is that each year the week numbers change and the number of days differ in each week.

1) Is there a way to track the exact week numbers in PowerApps?

2) Storing this data in a sharepoint List would require me to make 52/53 columns. Is there an easier alternative?

Can you please help me out?
1 ACCEPTED SOLUTION

Accepted Solutions
v-yutliu-msft
Community Support
Community Support

Hi @DevadathanK ,

Do you want to get the weeks in current month?

I think you do not need to manually create a list with 52/53 columns, you just need to use some formulas to calculate in powerapps directly.

Could you tell me what is your week's start day? Based on the data that you provided, I think it is Sunday.

I use Sunday as the start day below.

The issue that he posted is very good @eka24 .

Many solutions there could help you a lot to calculate about week.

By referring this, I figure out the solution to get the week list that you want:

1)set the Screen's OnVisible:

ClearCollect(a,[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,.....,52,53]);
ClearCollect(b,AddColumns(a,"weeknum",Concatenate("Week ",Text(Value))));
//b is a collection with all the week num value

Set(startweek,If(RoundDown((Date(Year(Today()),Month(Today()),1)- Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0) = 0,52,RoundDown((Date(Year(Today()),Month(Today()),1) - Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0))+1);

Set(endweek,If(RoundDown((DateAdd(Date(Year(Today()),Month(Today()),1),DateDiff(Date(Year(Today()),Month(Today()),1),Date(Year(Today()),Month(Today())+1,1))-1)- Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0) = 0,52,RoundDown((DateAdd(Date(Year(Today()),Month(Today()),1),DateDiff(Date(Year(Today()),Month(Today()),1),Date(Year(Today()),Month(Today())+1,1))-1) - Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0))+1 )

//the variable startweek is current month's start week
the variable endweek is current month's end week

2) insert a list box to display the week list that you want

set the list box's Items:

Filter(b,Value>=startweek,Value<=endweek)

set the list box's Value:

weeknum

Then the list box will display the value that you want:

362.PNG

 

 

 

 

Now, let me explain about the formulas that I use to calculate week.

1)How to calculate today's week:

 

If(RoundDown((Today()- Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0) = 0,52,RoundDown((Today() - Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0))+1 

 

If you use other day as startday, replace Sunday in my formula.

2)How to get the first day in current month:

 

Date(Year(Today()),Month(Today()),1)

 

3)How to get the last day in current month:

 

DateAdd(Date(Year(Today()),Month(Today()),1),DateDiff(Date(Year(Today()),Month(Today()),1),Date(Year(Today()),Month(Today())+1,1))-1)

 

Based on the first formula, if you want to get the first week in current month, you just need to replace Today() with the second formula.

If you want to get the last week in current month, you just need to replace Today() with the third formula.

 

 

Best regards,

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
eka24
Super User III
Super User III
v-yutliu-msft
Community Support
Community Support

Hi @DevadathanK ,

Do you want to get the weeks in current month?

I think you do not need to manually create a list with 52/53 columns, you just need to use some formulas to calculate in powerapps directly.

Could you tell me what is your week's start day? Based on the data that you provided, I think it is Sunday.

I use Sunday as the start day below.

The issue that he posted is very good @eka24 .

Many solutions there could help you a lot to calculate about week.

By referring this, I figure out the solution to get the week list that you want:

1)set the Screen's OnVisible:

ClearCollect(a,[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,.....,52,53]);
ClearCollect(b,AddColumns(a,"weeknum",Concatenate("Week ",Text(Value))));
//b is a collection with all the week num value

Set(startweek,If(RoundDown((Date(Year(Today()),Month(Today()),1)- Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0) = 0,52,RoundDown((Date(Year(Today()),Month(Today()),1) - Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0))+1);

Set(endweek,If(RoundDown((DateAdd(Date(Year(Today()),Month(Today()),1),DateDiff(Date(Year(Today()),Month(Today()),1),Date(Year(Today()),Month(Today())+1,1))-1)- Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0) = 0,52,RoundDown((DateAdd(Date(Year(Today()),Month(Today()),1),DateDiff(Date(Year(Today()),Month(Today()),1),Date(Year(Today()),Month(Today())+1,1))-1) - Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0))+1 )

//the variable startweek is current month's start week
the variable endweek is current month's end week

2) insert a list box to display the week list that you want

set the list box's Items:

Filter(b,Value>=startweek,Value<=endweek)

set the list box's Value:

weeknum

Then the list box will display the value that you want:

362.PNG

 

 

 

 

Now, let me explain about the formulas that I use to calculate week.

1)How to calculate today's week:

 

If(RoundDown((Today()- Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0) = 0,52,RoundDown((Today() - Date(Year(Today()), 1, 1) + (Weekday(Date(Year(Today()), 1, 1) - 1, Sunday))) / 7, 0))+1 

 

If you use other day as startday, replace Sunday in my formula.

2)How to get the first day in current month:

 

Date(Year(Today()),Month(Today()),1)

 

3)How to get the last day in current month:

 

DateAdd(Date(Year(Today()),Month(Today()),1),DateDiff(Date(Year(Today()),Month(Today()),1),Date(Year(Today()),Month(Today())+1,1))-1)

 

Based on the first formula, if you want to get the first week in current month, you just need to replace Today() with the second formula.

If you want to get the last week in current month, you just need to replace Today() with the third formula.

 

 

Best regards,

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

Helpful resources

Announcements
PA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

secondImage

Are Your Ready?

Test your skills now with the Cloud Skill Challenge.

Top Solution Authors
Top Kudoed Authors
Users online (35,801)