package core

import "core:sys/posix"
import "core:time"

// returns offset in seconds
get_timezone_offset :: proc(datetime: time.Time) -> int {
	t := posix.time_t(time.to_unix_seconds(datetime))
	tm: posix.tm
	posix.time(&t)
	posix.localtime_r(&t, &tm)
	return int(tm.tm_gmtoff)
}

new_time_with_seconds_offset :: proc(t: time.Time, seconds_offset: int) -> time.Time {
	return {_nsec = t._nsec + (i64(time.Second) * i64(seconds_offset))}
}

new_time_with_timezone_offset :: proc(t: time.Time) -> time.Time {
	return new_time_with_seconds_offset(t, get_timezone_offset(t))
}