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


(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)



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.

Karsten Pohnke About Karsten Pohnke
He is Consultant for SharePoint Solutions for collaboration, communication and business processes. He provides his customers applications based on standard features as well as development or combining the power of several microsoft tools like Dynamics CRM. In his free time he tries to collect tipps and worthy experience in this blog.

Submit comment

Allowed HTML tags: <a href="http://google.com">google</a> <strong>bold</strong> <em>emphasized</em> <code>code</code> <blockquote>
quote
</blockquote>