Do you need to calculate the number of days between two dates in Power Automate?

Calculating the number of days between two dates is a common requirement in business applications and workflows.

It is possible to get the number of days between two dates in Power Automate using various functions.

This article will guide you through two expressions to calculate the number of days between two dates. You will learn how to calculate the difference between two dates with the **ticks** function and the **dateDifference** function.

## Get the Days Between Two Dates with the Ticks Function

The **ticks** function provides a way to calculate the difference between two dates by converting each date into a numeric representation known as ticks. A tick represents 100-nanosecond intervals, and you can use this information to find the differences in seconds, minutes, hours, or days.

### Syntax of the Ticks Function

`ticks('<timestamp>')`

The ticks function will return the number of 100 nanosecond intervals between a datetime `<timestamp>`

and **0001-01-01 12:00:00** midnight.

### Days Between Two Dates with the Ticks Function

Since the ticks function works with nanoseconds, you will need to convert the results into days.

You can convert the results from ticks to days by dividing the number of ticks by **864000000000**.

```
1 day = 24 hours/day * 60 minutes/hour * 60 seconds/minute * 1,000,000,000 nanoseconds/second
1 day = 86,400,000,000,000 nanoseconds
```

This is because there are 24 hours per day, 60 minutes in an hour, 60 seconds in an hour, and 1,000,000,000 nanoseconds in a second.

This means 1 day has 86,400,000,000,000 nanoseconds.

```
1 day = 86,400,000,000,000 nanoseconds / (100 nanoseconds/tick)
1 day = 864,000,000,000 ticks
```

A tick is 100 nanoseconds, therefore 1 day has 864,000,000,000 ticks.

Now you can get the number of ticks between the start and end date and divide by 864,000,000,000 to get the number of days.

`div(sub(ticks(outputs('EndDate')),ticks(outputs('StartDate'))),864000000000)`

The above expression will give you the number of days between the **StartDate** and **EndDate** timestamps.

`ticks(outputs('EndDate'))`

gets the number of ticks between the**EndDate**timestamp and**0001-01-01 12:00:00**midnight.`ticks(outputs('StartDate'))`

gets the number of ticks between the**StartDate**timestamp and**0001-01-01 12:00:00**midnight.`sub(ticksEndDate,ticksStartDate)`

will get the number of ticks between the two dates.`div(ticks,864000000000)`

this divides the number of ticks between the two dates by**864000000000**to convert it to the number of days between the two dates.

This expression results in the total number of days between the two dates.

## Get the Days Between Two Dates with the dateDifference Function

Another way to calculate the difference between two dates in Power Automate is by using the **dateDifference** function.

### Syntax of the dateDifference Function

`dateDifference('<startDate>', '<endDate>')`

The **dateDifference** function directly calculates the difference between two date and time timestamps and returns a timespan string for the difference in days, hours, minutes, and seconds.

`startDate`

is the starting timestamp.`endDate`

is the ending timestamp.

### Days Between Two Dates with the dateDifference Function

`dateDifference(outputs('StartDate'),outputs('EndDate'))`

The above expression can be used to get the difference between the **StartDate** and **EndDate**.

This returns the timespan string in the format `dd.hh:mm:ss`

. In the above example, it returns 25 days as `25.00:00:00`

.

### Get Days as Integer from Timespan String

The **dateDifference** function will return a string value that includes the number of days, but you might only want the day part of this value as an integer data type.

This is possible with a few more functions to parse the day value and convert it to an integer.

`int(split(dateDifference(outputs('StartDate'),outputs('EndDate')), '.')[0])`

The above expression will return the number of days between the StartDate and EndDate as an integer.

`split(timespan, '.')`

will split the timespan string at the period character and return an array with the split values.`split()[0]`

will return the first part of the split text from the split array. This will contain the number of days.`int()`

will convert the number of days string to an integer data type.

## Conclusions

Calculating the number of days between two dates in Power Automate is a common task and it’s possible with two different expressions in Power Automate.

The **ticks** expression requires converting ticks to days by dividing the results by 864000000000, the number of ticks in a day, to obtain the number of days between the two dates.

The **dateDiffenence** function is more straightforward but will require you to parse the number of days from the results with the **split** function.

Incorporating these techniques into your Power Automate workflows will allow you to handle complex date related tasks.

I hope this information helps with your flow. Let me know in the comments!

When comparing two dates on the same day you need to use ticks(), as dateDifference() does not return 0 when the date is on the same day, rather it just returns hours and second. So the suggested use of split() “int(split( dateDifference( {now}, {then} ), ‘.’)[0])” will result in an error as the result will not have a “0 days” as expected with the format “days.hh:mm:ss.milliseconds” rather it just omits the days and returns “hh:mm:ss.milliseconds”

Thanks for the tips! I had not considered same day timestamps.

also when the 2 dates are the same

the convert to int bugs because it can’t convet 00:00:00 to int

You could use an if function to avoid this.