cancel
Showing results for
Did you mean:
Helper III

## Take current date and display date of forthcoming Monday

Hi,

The function below takes the current date and calculates the date 3 days after;

However, I would like the function to display the date of the next forthcoming Monday without having to state how many days this is offset from. Furthermore, if the current date falls on a Monday, I would like the calculated date to not be the current date, but rather the following Monday. Hope that makse sense!

Any help appreciated.
Thanks
1 ACCEPTED SOLUTION

Accepted Solutions
Community Support

Hi @Marty3012

Please refer to screenshot below to get the date of the following Monday:

The expression in the Compose as below:

`if(equals(dayOfWeek(utcNow()),1),addDays(utcNow(),7),if(equals(dayOfWeek(utcNow()),2),addDays(utcNow(),6),if(equals(dayOfWeek(utcNow()),3),addDays(utcNow(),5),if(equals(dayOfWeek(utcNow()),4),addDays(utcNow(),4),if(equals(dayOfWeek(utcNow()),5),addDays(utcNow(),3),if(equals(dayOfWeek(utcNow()),6),addDays(utcNow(),2),if(equals(dayOfWeek(utcNow()),0),addDays(utcNow(),1),null)))))))`

The expression in the Compose 2 as below:

`formatDateTime(outputs('Compose'),'yyyy-MM-dd')`

The flow would run successfully as below:

Best regards,

Alice

8 REPLIES 8
Resident Rockstar

I'm having a think at ways you can achieve this but think it would be helpful if you could post pictures of your flow with any detail possible. Could you do that?

Helper III

Current flow is shown below. What I'm trying to do is add the date for the forthcoming Monday in the Body of the Send Email section. The FormatDateTime() function in the body of the email is what I have at the moment.

Thanks

Resident Rockstar

I am just having a look and trying to create using preset variables and some conditions. Basically test all the day of week logic an advance of populating the email, then populate the email with the following Monday in that way. you may want to look at dayOfWeek() in line with your expression. I'll update later once I get somewhere.

Community Support

Hi @Marty3012

Please refer to screenshot below to get the date of the following Monday:

The expression in the Compose as below:

`if(equals(dayOfWeek(utcNow()),1),addDays(utcNow(),7),if(equals(dayOfWeek(utcNow()),2),addDays(utcNow(),6),if(equals(dayOfWeek(utcNow()),3),addDays(utcNow(),5),if(equals(dayOfWeek(utcNow()),4),addDays(utcNow(),4),if(equals(dayOfWeek(utcNow()),5),addDays(utcNow(),3),if(equals(dayOfWeek(utcNow()),6),addDays(utcNow(),2),if(equals(dayOfWeek(utcNow()),0),addDays(utcNow(),1),null)))))))`

The expression in the Compose 2 as below:

`formatDateTime(outputs('Compose'),'yyyy-MM-dd')`

The flow would run successfully as below:

Best regards,

Alice

Helper III

That works! Thanks very much for your help.

Multi Super User

Also if anyone needs to get the date of the next monday, tuesday, friday, saturday... etc. Then you can use this example flow to continually get the date of any upcoming day of the week

https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Get-Next-Date-s/td-p/2581331

New Member

I'm looking to get next tuesday, can you help me with what will be the change in function.

Employee

In case someone comes here in the future and wants something a little more streamlined, consider the following expression. Assume Monday is Day 1, Tuesday 2, etc. for targetDay. This will output the number of days until the next targetDay:

``if(equals(mod(add(sub(targetDay, dayOfWeek(utcNow())), 7), 7), 0), 7, mod(add(sub(targetDay, dayOfWeek(utcNow())), 7), 7))``

This will output the date of the next targetDay:

``addDays(utcNow(), if(equals(mod(add(sub(targetDay, dayOfWeek(utcNow())), 7), 7), 0), 7, mod(add(sub(targetDay, dayOfWeek(utcNow())), 7), 7)))``

Depending on what you're using this for, it may be worth converting the output to local time (i.e. for inclusion in an email).

Announcements