# Operation with dates

**URL:** <https://forum.inductiveautomation.com/t/operation-with-dates/14256>\
**Category:** Ignition\
**Tags:** ignition79, scripting\
**Created:** [May 10, 2017, 4:05pm UTC](https://forum.inductiveautomation.com/t/operation-with-dates/14256 "2017-05-10T16:05:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![claudio](https://avatars.discourse-cdn.com/v4/letter/c/7cd45c/32.png) [@claudio](https://forum.inductiveautomation.com/u/claudio)\
**Post date:** [May 10, 2017, 4:05pm UTC](https://forum.inductiveautomation.com/t/operation-with-dates/14256/1 "2017-05-10T16:05:56Z")

</div>

Hello  
I need to test two dates.  
I have placed a button with a very simple script that I copy below:

date1 = system.date.getDate(system.tag.read("[Client]StartYY").value, system.tag.read("[Client]StartMM").value-1, system.tag.read("[Client]StartDD").value)  
date2 = system.date.getDate(system.tag.read("[Client]StopYY").value, system.tag.read("[Client]StopMM").value-1, system.tag.read("[Client]StopDD").value)

print date1  
print date2

if system.date.dateIsAfter(date2, date1):  
print “ok”  
else:  
print “ko”

When I press the button I obtain this error:

Traceback (most recent call last):  
File “event:mouseReleased”, line 8, in   
AttributeError: ‘com.inductiveautomation.ignition.common.script.Imm’ object has no attribute ‘dateIsAfter’

```
at org.python.core.Py.AttributeError(Py.java:173)
at org.python.core.PyObject.noAttributeError(PyObject.java:930)
at org.python.core.PyObject. __getattr__ (PyObject.java:925)
at org.python.pycode._pyx10.f$0(<event:mouseReleased>:11)
at org.python.pycode._pyx10.call_function(<event:mouseReleased>)
at org.python.core.PyTableCode.call(PyTableCode.java:165)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1275)
at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:647)
at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.runActions(ActionAdapter.java:183)
at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.invoke(ActionAdapter.java:284)
at com.inductiveautomation.factorypmi.application.binding.action.RelayInvocationHandler.invoke(RelayInvocationHandler.java:55)
at com.sun.proxy.$Proxy33.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

```

Ignition v7.9.1 (b2017012511)  
Java: Oracle Corporation 1.8.0\_131

I used dateIsAfter according to documentation.  
Many thanks  
C.

---

<div class="post-metadata">

**Author:** ![JGJohnson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jgjohnson/32/29582_2.png) [@JGJohnson](https://forum.inductiveautomation.com/u/JGJohnson)\
**Post date:** [May 10, 2017, 4:29pm UTC](https://forum.inductiveautomation.com/t/operation-with-dates/14256/2 "2017-05-10T16:29:06Z")

</div>

The documentation shows the function is:

`system.date.isAfter(date_1, date_2)`

---

<div class="post-metadata">

**Author:** ![claudio](https://avatars.discourse-cdn.com/v4/letter/c/7cd45c/32.png) [@claudio](https://forum.inductiveautomation.com/u/claudio)\
**Post date:** [May 10, 2017, 9:19pm UTC](https://forum.inductiveautomation.com/t/operation-with-dates/14256/3 "2017-05-10T21:19:09Z")

</div>

Thank you.  
Anyway I followed

 ![](https://us1.discourse-cdn.com/inductiveautomation/original/2X/2/29f9c8b96c6eac9fb579dcfddc0d331fe18208c9.png)  
Thank you  
Many thanks  
C.

---

<div class="post-metadata">

**Author:** ![JGJohnson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jgjohnson/32/29582_2.png) [@JGJohnson](https://forum.inductiveautomation.com/u/JGJohnson)\
**Post date:** [May 10, 2017, 9:28pm UTC](https://forum.inductiveautomation.com/t/operation-with-dates/14256/4 "2017-05-10T21:28:07Z")

</div>

That explains it. dateIsAfter is an [Expression Function](https://docs.inductiveautomation.com/display/DOC79/Expression+Functions). These functions can only be used in expressions, not in python scripts.

[This page](https://docs.inductiveautomation.com/display/DOC79/Scripting) may help clear things up. Expressions are a separate language internal to Ignition.

---

<div class="post-metadata">

**Author:** ![claudio](https://avatars.discourse-cdn.com/v4/letter/c/7cd45c/32.png) [@claudio](https://forum.inductiveautomation.com/u/claudio)\
**Post date:** [May 10, 2017, 10:23pm UTC](https://forum.inductiveautomation.com/t/operation-with-dates/14256/5 "2017-05-10T22:23:34Z")

</div>

Thank you JGJohnson  
Best regards  
C.
