Hello
Ok, so Let's say you have a Start Date 2018-02-20, and from end of feb (2018-02-28) we have a span of 8 days.
So next month, how do you then get the date with the same day span? so end of Marts(31-03-2018, 8 days span), and the date i'm looking to get would then be the 2018-03-23.
How would you do that in a logic app/microsoft flow?
I found this that gives me end of month
adddays(concat(add(int(formatDateTime(utcNow(), 'yyyy')),if(equals(formatDateTime(utcNow(), 'MM'), '12'), 1, 0) ),'-',add(int(formatDateTime(utcNow(), 'MM')),if(equals(formatDateTime(utcNow(), 'MM'), '12'), -11, 1) ),'-01T00:00:00Z'),-1)
but don't have the skills to figure out the rest
Thank you.
I tested the expression you posted to get the last day of the month and it works perfectly. If I'm reading right your requirements, you always want to get the last day of the month and then 8 days before the end of the month. If that is correct, then this is how I was able to get both dates.
addDays(concat(add(int(formatDateTime(utcNow(),'yyyy')),if(equals(formatDateTime(utcNow(),'MM'),'12'),1,0)),'-',add(int(formatDateTime(utcNow(),'MM')),if(equals(formatDateTime(utcNow(),'MM'),'12'),-11,1)),'-01T00:00:00Z'),-1)
addDays(outputs('Last_Day_Of_Month'),-8)
The screenshot below shows my Flow output:
Regards,
Fausto Capellan, Jr
Hi @AllanKnudsen,
Do you want to get the date with a span of 8 days from end of next month (March)?
I agree with @faustocapellanj's thought almost, based on the formula that you provided, I have made a test on my side and please take a try with the following workaround:
adddays(concat(add(int(formatDateTime(utcNow(), 'yyyy')),if(equals(formatDateTime(utcNow(), 'MM'), '12'), 1, 0) ),'-',add(int(formatDateTime(utcNow(), 'MM')),if(equals(formatDateTime(utcNow(), 'MM'), '12'), -11, 1) ),'-01T00:00:00Z'),-1)
formatDateTime(addDays(outputs('Compose'),-8),'yyyy-MM-dd')
Image reference:
The flow works successfully as below:
Best regards,
Kris
Not quite
My issue is that if I enter a date 31/01/2018 and add a month using Date Time function in flow, I do not get the 28/02-2018, but 03/03/2018.
Also if I add 31/03/2018 and add one month, I get 01/05/2018.
So I tried to do the calulation myself, but cant figure out the rest.
So I have EndOfCurrentMonth, I can do subtract from my DatePicker, and find a span (let's say 31-01-2018 minus 25-01-2018)
that would give me a span on 6 days.
So next month, I would then find EndOfMonth (28-02-2018) minus the span from last month (6 days) so that would then be the 22-02-2018)
Maybe i'm just doing it way too complicated, but I dont see another option other than trying to calculate it myself with EndOfMonth, as clearly "Add to Time" Interval 1, Month will not give me the correct "next Date"
Hi @AKN
Your original post stated that you want to retrieve the last day of the month and then retrieve 8 days prior to the end of the month, e.g. 31/01/2018 for the last day of the month and 23/01/2018 for the 8 days prior. Based on the expression you provided, I can get both directly in Flow, and I provided the output of my tests in my previous post.
Now you mentioned you are having issues adding a month to 31/01/2018. Using the same expression from your original post to get the last day of the month, I used the "Date Time - Add to time" action to add a month and I got the correct output. See below:
I should have this question with my first reply. Where is this date coming from? Are you using a SharePoint list? What will trigger this Flow? I just ask because it'd be ideal to have a better understanding of your application so we can provide you with the best solution.
Regards,
Fausto Capellan, Jr
Sorry for not getting back to you.
I'll try and explain again 😉
I need a way to calculate/find next date of a given interval.
So if we have an end date (31/1-2018), how do I with an Interval calculate "next" date.
If I run with an Interval of one month, how do I calculate next interval to be the 28/02-2018, 31/03-2018, 30,04-2018 and so on.
If I just add +1 month to 31/1-2018, I end up with a new date not being 28/02-2018.
Hi @AKN,
If your aim is to get the last day of the month then I would go for the appraoch of take the first day of the next month and then calculate -1 day.
no I would like to get the "future" date of any given date, my reply was just as an example.
If I take any date, what is the equivalent date next interval. Interval could be one month, or quarterly or half-yearly.
So the 20/01-2018 what is the next date if we are running with quarterly interval, or the 31/01-2018, what is the next date if we run on a half-yearly interval.
Like @faustocapellanj mentioned earlier the Add to time action should do this. Notice that when I run this with today's date Flow seems to make next month the 31st because today is the last day of the month.
but when I tried a quartely interval I seem to be getting the wrong answer:
Is this the issue that you are trying to report?
Correct 😉
+3 month or +6 gives a wrong outcome.
I would think that +3 month should give me the 31/7-2018 and not like your result the 29th
I wonder if 3 times +1 month would work better as a workaround.
Just tried with +6 month, it gives me 28/10-2018, and not 31/10-2018
nah, just tried add to time 3 times, gives me this : 01/08-2018
I just tried the same:
https://veenstra.me.uk/2018/04/30/microsoft-flow-next-month-is-okay-but-dont-go-any-further/
Hi @Pieter_Veenstra and @AKN
It seems like the Date Time actions to get future time works with days when you add 3 or 6 months. From @AKN's previous comment, I can see he's trying to get the date interval to be same day as the starting date. For example, he has 5/10/2018 as the current date, and then wants the interval on the same day, i.e. 8/10/2018. We'll have to dig more around that to see how it can be accomplished.
@faustocapellanj tried that, but future time only takes current time + interval, I need to pick a date and then get the future date of that.
Also I tried yesterday the 30/04 and with get future time in 6 month, it was still wrong.
Hi @AKN
@Pieter_Veenstra and I are doing some digging on how the Get Future Time function works in the backend to see how we can provide you with a solution
Regards,
I also tried the addToTime function in an expression but it still gives the same problem. It looks like both use the same algorithm.
I was thinking about text splitting the date on '-' then add X to the month and then join the bits of the date together again. But this is not going to be easy.
Or maybe the better option is use the function startOfMonth and dayofMonth to calculate the end of a period.
I found a solution fopr this:
https://veenstra.me.uk/2018/06/25/microsoft-flow-calculate-next-month-resolved-with-workaround/
Dive into the Power Platform stack with hands-on sessions and labs, virtually delivered to you by experts and community leaders.
Watch Nick Doelman's session from the 2020 Power Platform Community Conference on demand!
User | Count |
---|---|
40 | |
37 | |
36 | |
35 | |
28 |
User | Count |
---|---|
39 | |
39 | |
34 | |
30 | |
23 |