Task End Date - What's the Logic?

A customer pointed this out so I came here to see how you handle it and it’s the same.

Look at this sample as a reference. https://dhtmlx.com/docs/products/dhtmlxGantt/06_grid_config.html

Develop System is set as a 2-day task starting April 3rd. So that means you will commit April 3rd (day 1) and April 4th (day 2). So why does April 5th get listed as the End date?

What is the logic in this?

Think of it this way. If a coupon has an expiration date of April 5th, that means you can use it on the 4th and 5th but after the 6th. Using your logic, I can use it on the 4th but not on the 5th or later.

Please help me understand this.

Gantt stores end dates in a ‘not inclusive’ format. Meaning that the end date of the task in your example will be stored as “05-04-2013 00:00” - midnight after April 4th.
By default, these dates are displayed as-is, so the user can get the impression that the task spans one extra day.

There is no good way to change the format dates are stored, but you can change how they are displayed in the UI so the user would see the last day when the task actually happens

You can check this template:

And the previous discussion: