-
Key: DMN13-24
-
Status: closed
-
Source: ACTICO ( Daniel Thanner)
-
Summary:
The specification says that the addition/subtraction of a date and time and a years and months duration value is defined as:
date and time ( date(e1.year +/– e2.years + floor((e1.month+/– e2.months)/12), e1.month +/– e2.months – floor((e1.month +/– e2.months)/12) * 12, e1.day), time(e1))
If you apply this expression to the following two values:
- date and time("2017-08-30T11:00:00Z")
- duration("P18M")
you would expect the following results:
date and time("2017-08-30T11:00:00Z") + duration("P18M") --> result should be date and time("2019-02-28T11:00:00Z") date and time("2017-08-30T11:00:00Z") - duration("P18M") --> result should be date and time("2016-02-29T11:00:00Z")
If you apply the values to the defined formula, you get:
date and time ( date(2017 +/– 1 + floor((8 +/– 6)/12), 8 +/– 6 – floor((8 +/– 6)/12) * 12, 30), time("11:00:00Z"))
Addition
which results for addition into:date and time ( date(2018 + floor(1,1667), 14 – floor(1,1667) * 12, 30), time("11:00:00Z"))
which is:
date and time (date(2019, 2, 30), time("11:00:00Z"))
The adjustment to the last valid day in a month is missing. 30th February is invalid, since February has only 28/29 days.
Subtraction
which results for subtraction into:date and time ( date(2016 + floor(0,1667), 2 – floor(0,1667) * 12, 30), time("11:00:00Z"))
which is:
date and time (date(2016, 2, 30), time("11:00:00Z"))
The adjustment to the last valid day in a month is missing. 30th February is invalid, since February has only 28/29 days.
Recommendation:
Adjustment to last valid day in month must be added to spec. -
Reported: DMN 1.1 — Mon, 2 Oct 2017 12:41 GMT
-
Disposition: Deferred — DMN 1.3
-
Disposition Summary:
RTF 1.3 is ending
Thank you for reporting the issue; it is likely valid but unfortunately the DMN 1.3 revision task force ran out of time before a member was able to resolve it. The issue will be deferred to the next revision task force.
-
Updated: Mon, 30 Mar 2020 19:50 GMT
DMN13 — No adjustment for last day in month if duration is added/subtracted to date and time value
- Key: DMN13-24
- OMG Task Force: Decision Model and Notation 1.3 RTF