# Time Time related misc functions, constants and variables. - - - ## Time constants This section is about the time constants WaspLib provides so you have an easier time specifying human friendly units of time since Simba works in milliseconds. - - - (TICK)= ### TICK const Represents a game tick worth of time (600 milliseconds). For example, if you wanted to sleep for 6 game ticks you could do this: ```pascal {$I WaspLib/main.simba} begin Sleep(6*TICK); end. ``` - - - (SECOND)= ### SECOND const Represents one second worth of time in milliseconds (1000 milliseconds). For example, if you wanted to sleep for 33 seconds you could do this: ```pascal {$I WaspLib/main.simba} begin Sleep(33*SECOND); end. ``` - - - (MINUTE)= ### MINUTE const Represents one minute worth of time in milliseconds (60000 milliseconds). For example, if you wanted to sleep for 12 minutes you could do this: ```pascal {$I WaspLib/main.simba} begin Sleep(12*MINUTE); end. ``` - - - (HOUR)= ### HOUR const Represents one hour worth of time in milliseconds (3600000 milliseconds). For example, if you wanted to sleep for 4 hours you could do this: ```pascal {$I WaspLib/main.simba} begin Sleep(4*HOUR); end. ``` - - - (DAY)= ### DAY const Represents one day worth of time in milliseconds (86400000 milliseconds). For example, if you wanted to sleep for 7 days you could do this: ```pascal {$I WaspLib/main.simba} begin Sleep(7*DAY); end. ``` - - - ## Date format constants Date format strings ready to use with some popular date formatting schemes. - - - (DT_FORMAL_DATE)= ### DT_FORMAL_DATE const Formal date format `YYYY years, M months and D days` for {ref}`TDateTime` Example: ```pascal {$I WaspLib/main.simba} begin WriteLn TDateTime.CreateFromSystem().ToString(DATE_FORMAL); end. ``` Which should print something like this: ``` 2026 years, 6 months and 14 days ``` - - - (MS_DATE_FORMAL)= ### MS_DATE_FORMAL const Formal date format `YYYY years, M months and D days` for {ref}`FormatMilliseconds` Example: ```pascal {$I WaspLib/main.simba} begin WriteLn FormatMilliseconds(900*DAY, MS_DATE_FORMAL); end. ``` Which should print something like this: ``` 2 years, 5 months and 17 days ``` - - - (DT_SHORT_DATE)= ### DT_SHORT_DATE const Short date format `DD/MM/YYYY`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn TDateTime.CreateFromSystem().ToString(DT_SHORT_DATE); end. ``` Which should print something like this: ``` 14/06/2026 ``` - - - (MS_DATE_SHORT)= ### MS_DATE_SHORT const Short date format `DD/MM/YYYY` for {ref}`FormatMilliseconds`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn FormatMilliseconds(900*DAY, MS_DATE_SHORT); end. ``` Which should print something like this: ``` 17/05/02 ``` - - - (DT_SHORT_DATE_R)= ### DT_SHORT_DATE_R const Reversed short date format `YYYY/MM/DD` for {ref}`TDateTime`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn TDateTime.CreateFromSystem().ToString(DT_SHORT_DATE_R); end. ``` Which should print something like this: ``` 2026/06/14 ``` - - - (MS_DATE_SHORT_R)= ### MS_DATE_SHORT_R const Short date format `YYYY/MM/DD` for {ref}`FormatMilliseconds`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn FormatMilliseconds(900*DAY, MS_DATE_SHORT_R); end. ``` Which should print something like this: ``` 02/05/17 ``` - - - ## Time format constants Time format strings ready to use with some popular time formatting schemes. - - - (DT_TIME_FORMAL)= ### DT_TIME_FORMAL const Formal time format `HH hours, MM minutes and SS seconds` for {ref}`TDateTime`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn TDateTime.CreateFromSystem().ToString(DT_TIME_FORMAL); end. ``` Which should print something like this: ``` 13 hours, 40 minutes and 50 seconds ``` - - - (MS_TIME_FORMAL)= ### MS_TIME_FORMAL const Formal time format `HH hours, MM minutes and SS seconds` for {ref}`FormatMilliseconds`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn FormatMilliseconds(32*DAY+15*MINUTE+12*SECOND, MS_TIME_FORMAL); end. ``` Which should print something like this: ``` 768 hours, 15 minutes and 12 seconds ``` - - - (TIME_SHORT)= ### TIME_SHORT const Short, 24H time format `HH:MM:SS` for both {ref}`TDateTime` and {ref}`FormatMilliseconds`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn TDateTime.CreateFromSystem().ToString(TIME_SHORT); end. ``` Which should print something like this: ``` 13:40:50 ``` - - - (DT_MINUTES_FORMAL)= ### DT_MINUTES_FORMAL const Formal time format for minutes and seconds `MM minutes and SS seconds` for {ref}`TDateTime`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn TDateTime.CreateFromSystem().ToString(DT_MINUTES_FORMAL); end. ``` Which should print something like this: ``` 48 minutes and 59 seconds ``` - - - (MS_MINUTES_FORMAL)= ### MS_MINUTES_FORMAL const Formal time format for minutes and seconds `MM minutes and SS seconds` for {ref}`FormatMilliseconds`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn FormatMilliseconds(3*HOUR+15*SECOND, MS_MINUTES_FORMAL); end. ``` Which should print this: ``` 180 minutes and 15 seconds ``` - - - (FILE_TIME_FORMAT)= ### FILE_TIME_FORMAT const Date and time format for file names `YYYY-MM-DD_hh-mm-ss-ms` for both {ref}`TDateTime` and {ref}`FormatMilliseconds`. Example: ```pascal {$I WaspLib/main.simba} begin WriteLn TDateTime.CreateFromSystem().ToString(FILE_TIME_FORMAT); end. ``` Which should print something like this: ``` 2026-06-14_13-50-14-614 ``` This can be useful when you need unique file names and unless you try to create the same file twice in the same millisecond this will give you a unique name for it, for example: ```pascal {$I WaspLib/main.simba} var img: TImage; filename: String; begin img := Target.GetImage(); filename := TDateTime.CreateFromSystem().ToString(FILE_TIME_FORMAT); img.Save(filename + '.png', True); end. ``` - - - ## TCountDown.Restart ```pascal procedure TCountDown.Restart(min, max: Integer); overload; ``` Restarts the `TCountDown` with a random value between `min` and `max`