InfoPath – Calculate difference between date and today

Often it is required to calculate differences between two dates or between a date and today. In this post i’d like to show how to calculate the difference between a date field and today’s date.

We only need two fields:
target date (date field)
Remaining days (integer)

Step 1: Create Rule “Calc Remaining Days” at field Target Date

Condition: None, if the field changes
Action:
Set value of a field: Remaining Days
Value: just copy this function into the value field

[code language=”csharp”]
(zahl(teilzeichenfolge(.; 9; 2)) + untergrenze((153 * (zahl(teilzeichenfolge(.; 6; 2)) + 12 * (untergrenze((14 – zahl(teilzeichenfolge(.; 6; 2))) / 12)) – 3) + 2) / 5) + (zahl(teilzeichenfolge(.; 1; 4)) + 4800 – (untergrenze((14 – zahl(teilzeichenfolge(.; 6; 2))) / 12))) * 365 + untergrenze((zahl(teilzeichenfolge(.; 1; 4)) + 4800 – (untergrenze((14 – zahl(teilzeichenfolge(.; 6; 2))) / 12))) / 4) – untergrenze((zahl(teilzeichenfolge(.; 1; 4)) + 4800 – (untergrenze((14 – zahl(teilzeichenfolge(.; 6; 2))) / 12))) / 100) + untergrenze((zahl(teilzeichenfolge(.; 1; 4)) + 4800 – (untergrenze((14 – zahl(teilzeichenfolge(.; 6; 2))) / 12))) / 400) – 32045) – (zahl(teilzeichenfolge(heute(); 9; 2)) + untergrenze((153 * (zahl(teilzeichenfolge(heute(); 6; 2)) + 12 * (untergrenze((14 – zahl(teilzeichenfolge(heute(); 6; 2))) / 12)) – 3) + 2) / 5) + (zahl(teilzeichenfolge(heute(); 1; 4)) + 4800 – (untergrenze((14 – zahl(teilzeichenfolge(heute(); 6; 2))) / 12))) * 365 + untergrenze((zahl(teilzeichenfolge(heute(); 1; 4)) + 4800 – (untergrenze((14 – zahl(teilzeichenfolge(heute(); 6; 2))) / 12))) / 4) – untergrenze((zahl(teilzeichenfolge(heute(); 1; 4)) + 4800 – (untergrenze((14 – zahl(teilzeichenfolge(heute(); 6; 2))) / 12))) / 100) + untergrenze((zahl(teilzeichenfolge(heute(); 1; 4)) + 4800 – (untergrenze((14 – zahl(teilzeichenfolge(heute(); 6; 2))) / 12))) / 400) – 32045)

[/code]


If you like, you can  add a second rule which checks if the field target date is empty, it sets remaining days to zero.
Important: Remaining Days should be an integer type.

How it looks like:

the current date was 08.09.2017
Here are some posts where you can find some more information.
https://sites.google.com/site/sharebyme/sharepoint/infopath-service/rule/calculate-the-difference-between-two-date-picker-controls-in-infopath-using-rules-and-formulas—no-code
 

The article or information provided here represents completely my own personal view & thought. It is recommended to test the content or scripts of the site in the lab, before making use in the production environment & use it completely at your own risk. The articles, scripts, suggestions or tricks published on the site are provided AS-IS with no warranties or guarantees and confers no rights.

About Karsten Schneider 312 Articles
Consultant for Microsoft 365 Applications with a strong focus in Teams, SharePoint Online, OneDrive for Business as well as PowerPlatform with PowerApps, Flow and PowerBI. I provide Workshops for Governance & Security in Office 365 and Development of Solutions in the area of Collaboration and Teamwork based on Microsoft 365 and Azure Cloud Solutions. In his free time he tries to collect tipps and worthy experience in this blog.

Be the first to comment

Leave a Reply