Files
Aurora.3/code/_helpers/time.dm
2018-11-09 02:28:48 +01:00

60 lines
1.9 KiB
Plaintext

var/roundstart_hour = 0
var/round_start_time
//Returns the world time in english
/proc/worldtime2text(time = world.time, timeshift = 1)
if(!roundstart_hour) roundstart_hour = rand(0, 23)
return timeshift ? time2text(time+(roundstart_hour HOURS), "hh:mm") : time2text(time, "hh:mm")
/proc/worldtime2hours()
if (!roundstart_hour)
worldtime2text()
. = text2num(time2text(world.time + (roundstart_hour HOURS), "hh"))
/proc/worlddate2text()
return num2text(game_year) + "-" + time2text(world.timeofday, "MM-DD")
/proc/time_stamp()
return time2text(world.timeofday, "hh:mm:ss")
/* Returns 1 if it is the selected month and day */
/proc/isDay(var/month, var/day)
if(isnum(month) && isnum(day))
var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month
var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day
if(month == MM && day == DD)
return 1
// Uncomment this out when debugging!
//else
//return 1
var/real_round_start_time
/proc/get_round_duration() //Real time since round has started, in ticks.
return real_round_start_time ? (REALTIMEOFDAY - real_round_start_time) : 0
/proc/get_round_duration_formatted()
var/duration = get_round_duration()
var/hour = "[ round(duration / ( 1 HOUR) ) ]"
var/minute = "[ round(duration / (1 MINUTE) ) % 60 ]"
if(length(hour) == 1)
hour = "0" + hour
if(length(minute) == 1)
minute = "0" + minute
return "[hour]:[minute]"
/var/midnight_rollovers = 0
/var/rollovercheck_last_timeofday = 0
/proc/update_midnight_rollover()
if (world.timeofday < rollovercheck_last_timeofday) //TIME IS GOING BACKWARDS!
midnight_rollovers += 1
rollovercheck_last_timeofday = world.timeofday
return midnight_rollovers
//returns timestamp in a sql and ISO 8601 friendly format
/proc/SQLtime(timevar)
if(!timevar)
timevar = world.realtime
return time2text(timevar, "YYYY-MM-DD hh:mm:ss")