Convert Unix Timestamp to Date
SafeFloor(Value: float)<transacts>:int =
if(Floored := Floor[Value]) then Floored else 0
SafeMod(Value: int, Modulo: int)<transacts>:int =
if(Modded := Mod[Value, Modulo]) then Modded else 0
# Convert a Unix timestamp to a formatted date string
ConvertTimestampToDate<public>(Timestamp : int)<transacts>:string =
# Ensure we're working with floats
TimestampFloat := Timestamp * 1.0
# Calculate days (using float multiplication and division)
DaysSinceEpoch := SafeFloor(TimestampFloat / (86400.0 * 1.0))
RemainingSeconds := SafeFloor(SafeMod(Timestamp, 86400) * 1.0)
# Calculate components
Year := CalculateYear(DaysSinceEpoch)
DaysInYear := CalculateDaysInYear(Year)
DayOfYear := DaysSinceEpoch - CalculateDaysSinceEpoch(Year)
# Calculate month and day
MonthAndDay := CalculateMonthAndDay(Year, DayOfYear)
Month := MonthAndDay(0)
Day := MonthAndDay(1)
# Calculate time components
Hours := SafeFloor(RemainingSeconds * 1.0 / 3600.0)
Minutes := SafeFloor(SafeMod(RemainingSeconds, 3600) * 1.0 / 60.0)
Seconds := SafeFloor(SafeMod(RemainingSeconds, 60) * 1.0)
# Format with leading zeros
YearStr := "{Year}"
MonthStr := if(Month < 10) then "0{Month}" else "{Month}"
DayStr := if(Day < 10) then "0{Day}" else "{Day}"
HoursStr := if(Hours < 10) then "0{Hours}" else "{Hours}"
MinutesStr := if(Minutes < 10) then "0{Minutes}" else "{Minutes}"
SecondsStr := if(Seconds < 10) then "0{Seconds}" else "{Seconds}"
You're reading a preview
The full reference is free for BrainDeadGuild Discord members — sign in to read it all, or open the original at the source.
Sign in with your BrainDead.TV / BrainDeadGuild Discord account for full access.