Hi Comunnity!
I am dealing with something that I am sure must be simple but I've not been able to solve so far, I have two dates, declared as StartDate and EndDate. I need in other Label show the difference as Days, hours and minutes
Example:
I have a StartDate as 14/10/2020 6:00 and the EndDate as 18/10/2020 10:00 and I need in a different label show as:
4 days and 4 hours and 30 minutes
I have been reading several topics about it but still I am not able to solve it.
Can some of you guys give me a hand with this?
I really appreciate your usual help.
Solved! Go to Solution.
[edited] Good point - apparently when calculating the difference between days the DateDiff function discards the time part - and when calculating the difference in hours it discards the minutes part. We can solve this by calculating the number of days using the hours - and dividing the result by 24 (rounding down), and a similar for the number of hours. This should work for your scenario:
With(
{
days: RoundDown(DateDiff(startDate; endDate; Hours) / 24; 0);
hours: Mod(RoundDown(DateDiff(startDate; endDate; Minutes) / 60; 0); 24);
minutes: Mod(DateDiff(startDate; endDate; Minutes); 60)
};
days & " day(s), " & hours & " hour(s) and " & minutes & " minute(s)"
)
Hopefully it will work this time 🙂
You can use an expression like the one below to get what you need:
With(
{
days: DateDiff(startDate; endDate; Days);
hours: Mod(DateDiff(startDate; endDate; Hours); 24);
minutes: Mod(DateDiff(startDate; endDate; Minutes); 60)
};
days & " day(s), " & hours & " hour(s) and " & minutes & " minute(s)"
)
The DateDiff function will give you a whole number of <units> that make up the difference between the two dates; since you already have the days, you only need to use the remainder of the number of hours divided by 24 (using the Mod function). Similarly to the number of minutes.
The attached app shows this expression for your scenario. To open it, save it locally, then go to https://create.powerapps.com, select Open -> Browse, and find the file that you saved.
Hope this helps!
@CarlosFigueira
Thank for your answer, I have check it with your atteched example and its works but I am frustrated as when the hour of the EndDate is lower than the Hour of the StarDate it do not calculate as supposed to be, I have made this screenshoot to explain it better.
Do you have any idea how to fix it?
Thank you!!
[edited] Good point - apparently when calculating the difference between days the DateDiff function discards the time part - and when calculating the difference in hours it discards the minutes part. We can solve this by calculating the number of days using the hours - and dividing the result by 24 (rounding down), and a similar for the number of hours. This should work for your scenario:
With(
{
days: RoundDown(DateDiff(startDate; endDate; Hours) / 24; 0);
hours: Mod(RoundDown(DateDiff(startDate; endDate; Minutes) / 60; 0); 24);
minutes: Mod(DateDiff(startDate; endDate; Minutes); 60)
};
days & " day(s), " & hours & " hour(s) and " & minutes & " minute(s)"
)
Hopefully it will work this time 🙂
User | Count |
---|---|
176 | |
116 | |
85 | |
44 | |
41 |
User | Count |
---|---|
239 | |
153 | |
131 | |
77 | |
72 |