I tried to display some time differences with FormatDate().
But when displaying for time differences over 24 hours,
"%dd" in FormatDate() always gives one more day than
the difference is.
What do I overlook? Is FormatDate() not useable for
time differences when also using "%dd" in format string?
Test code:
Code: Select all
OneSecond.i = 1
OneMinute.i = 60
OneHour.i = OneMinute*OneMinute
OneDay.i = 24*OneHour
Debug "----h, m, s"
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", 0)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneSecond)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneSecond*2)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneMinute)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay*2)
Debug "----h, m, s"
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", 0)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneSecond)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneMinute)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneMinute+OneSecond)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour+OneSecond)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour+OneMinute)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour+OneMinute+OneSecond)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneSecond)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneMinute)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneMinute+OneSecond)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneHour)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneHour+OneSecond)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneHour+OneMinute)
Debug FormatDate("%hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneHour+OneMinute+OneSecond)
Debug "----d, h, m, s"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", 0)+" should be: 00, 00, 00, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneSecond)+" should be: 00, 00, 00, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneSecond*2)+" should be: 00, 00, 00, 02"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneMinute)+" should be: 00, 00, 01, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour)+" should be: 00, 01, 00, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay)+" should be: 01, 00, 00, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay*2)+" should be: 02, 00, 00, 00"
Debug "----d, h, m, s"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", 0)+" should be: 00, 00, 00, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneSecond)+" should be: 00, 00, 00, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneMinute)+" should be: 00, 00, 01, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneMinute+OneSecond)+" should be: 00, 00, 01, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour)+" should be: 00, 01, 00, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour+OneSecond)+" should be: 00, 01, 00, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour+OneMinute)+" should be: 00, 01, 01, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneHour+OneMinute+OneSecond)+" should be: 01, 00, 00, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay)+" should be: 01, 00, 00, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneSecond)+" should be: 01, 00, 00, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneMinute)+" should be: 01, 00, 01, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneMinute+OneSecond)+" should be: 01, 00, 01, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneHour)+" should be: 01, 01, 00, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneHour+OneSecond)+" should be: 01, 01, 00, 01"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneHour+OneMinute)+" should be: 01, 01, 01, 00"
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", OneDay+OneHour+OneMinute+OneSecond)+" should be: 01, 01, 01, 01"
Debug "----"
Debug "Please wait 11 seconds"
Date1.i=Date()
Delay(11000)
Date2.i=Date()
DeltaDate=Date2-Date1
Debug FormatDate("%dd Day(s), %hh Hour(s), %ii Minute(s), %ss Second(s)", DeltaDate)
----h, m, s
00 Hour(s), 00 Minute(s), 00 Second(s)
00 Hour(s), 00 Minute(s), 01 Second(s)
00 Hour(s), 00 Minute(s), 02 Second(s)
00 Hour(s), 01 Minute(s), 00 Second(s)
01 Hour(s), 00 Minute(s), 00 Second(s)
00 Hour(s), 00 Minute(s), 00 Second(s)
00 Hour(s), 00 Minute(s), 00 Second(s)
----h, m, s
00 Hour(s), 00 Minute(s), 00 Second(s)
00 Hour(s), 00 Minute(s), 01 Second(s)
00 Hour(s), 01 Minute(s), 00 Second(s)
00 Hour(s), 01 Minute(s), 01 Second(s)
01 Hour(s), 00 Minute(s), 00 Second(s)
01 Hour(s), 00 Minute(s), 01 Second(s)
01 Hour(s), 01 Minute(s), 00 Second(s)
01 Hour(s), 01 Minute(s), 01 Second(s)
00 Hour(s), 00 Minute(s), 00 Second(s)
00 Hour(s), 00 Minute(s), 01 Second(s)
00 Hour(s), 01 Minute(s), 00 Second(s)
00 Hour(s), 01 Minute(s), 01 Second(s)
01 Hour(s), 00 Minute(s), 00 Second(s)
01 Hour(s), 00 Minute(s), 01 Second(s)
01 Hour(s), 01 Minute(s), 00 Second(s)
01 Hour(s), 01 Minute(s), 01 Second(s)
----d, h, m, s
01 Day(s), 00 Hour(s), 00 Minute(s), 00 Second(s) should be: 00, 00, 00, 00
01 Day(s), 00 Hour(s), 00 Minute(s), 01 Second(s) should be: 00, 00, 00, 01
01 Day(s), 00 Hour(s), 00 Minute(s), 02 Second(s) should be: 00, 00, 00, 02
01 Day(s), 00 Hour(s), 01 Minute(s), 00 Second(s) should be: 00, 00, 01, 00
01 Day(s), 01 Hour(s), 00 Minute(s), 00 Second(s) should be: 00, 01, 00, 00
02 Day(s), 00 Hour(s), 00 Minute(s), 00 Second(s) should be: 01, 00, 00, 00
03 Day(s), 00 Hour(s), 00 Minute(s), 00 Second(s) should be: 02, 00, 00, 00
----d, h, m, s
01 Day(s), 00 Hour(s), 00 Minute(s), 00 Second(s) should be: 00, 00, 00, 01
01 Day(s), 00 Hour(s), 00 Minute(s), 01 Second(s) should be: 00, 00, 00, 01
01 Day(s), 00 Hour(s), 01 Minute(s), 00 Second(s) should be: 00, 00, 01, 00
01 Day(s), 00 Hour(s), 01 Minute(s), 01 Second(s) should be: 00, 00, 01, 01
01 Day(s), 01 Hour(s), 00 Minute(s), 00 Second(s) should be: 00, 01, 00, 00
01 Day(s), 01 Hour(s), 00 Minute(s), 01 Second(s) should be: 00, 01, 00, 01
01 Day(s), 01 Hour(s), 01 Minute(s), 00 Second(s) should be: 00, 01, 01, 00
01 Day(s), 01 Hour(s), 01 Minute(s), 01 Second(s) should be: 01, 00, 00, 01
02 Day(s), 00 Hour(s), 00 Minute(s), 00 Second(s) should be: 01, 00, 00, 00
02 Day(s), 00 Hour(s), 00 Minute(s), 01 Second(s) should be: 01, 00, 00, 01
02 Day(s), 00 Hour(s), 01 Minute(s), 00 Second(s) should be: 01, 00, 01, 00
02 Day(s), 00 Hour(s), 01 Minute(s), 01 Second(s) should be: 01, 00, 01, 01
02 Day(s), 01 Hour(s), 00 Minute(s), 00 Second(s) should be: 01, 01, 00, 00
02 Day(s), 01 Hour(s), 00 Minute(s), 01 Second(s) should be: 01, 01, 00, 01
02 Day(s), 01 Hour(s), 01 Minute(s), 00 Second(s) should be: 01, 01, 01, 00
02 Day(s), 01 Hour(s), 01 Minute(s), 01 Second(s) should be: 01, 01, 01, 01
----
Please wait 11 seconds
01 Day(s), 00 Hour(s), 00 Minute(s), 11 Second(s)