Further:
Extract of code with logs to show the actual tick values in the left arrow sub..
Code:
Log("dpBookings ticks before = "&dpBookings.DateTicks)
Dim t As Long = DateTime.TicksPerDay
Log("Ticks per day = "&DateTime.TicksPerDay)
dpBookings.DateTicks = dpBookings.DateTicks - t
Log("dpBookings.DateTicks - t = "&dpBookings.DateTicks)
displayDate = Utils.TicksToMysqlDate(dpBookings.DateTicks)
LogDebug("noteBack DisplayDate = "&displayDate&" dpBookings = "&DateTime.Date( dpBookings.DateTicks))
Going backwards the log extract shows the date skips 2 days between 2017-04-03 and 2017-04-01
* Increase date + 1 day
noteForward DisplayDate = 2017-04-04 dpBookings = 2017-04-04
Display Date = 2017-04-04 dpBookings = 2017-04-04
* Decrease -1 day
dpBookings ticks before = 1491228000000
Ticks per day = 86400000
dpBookings.DateTicks - t = 1491141600000
noteBack DisplayDate = 2017-04-03 dpBookings = 2017-04-03
Display Date = 2017-04-03 dpBookings = 2017-04-03
* Decrease -1 Day
dpBookings ticks before = 1491141600000
Ticks per day = 86400000
dpBookings.DateTicks - t = 1491051600000 <------------------ should be 1491055200000
noteBack DisplayDate = 2017-04-01 dpBookings = 2017-04-01
Display Date = 2017-04-01 dpBookings = 2017-04-01