diff --git a/ICD.Common.Utils/Extensions/TimeSpanExtensions.cs b/ICD.Common.Utils/Extensions/TimeSpanExtensions.cs index cec82eb..178e9ca 100644 --- a/ICD.Common.Utils/Extensions/TimeSpanExtensions.cs +++ b/ICD.Common.Utils/Extensions/TimeSpanExtensions.cs @@ -83,5 +83,29 @@ namespace ICD.Common.Utils.Extensions minutes = MathUtils.Modulus(minutes + extends.Minutes, 60); return new TimeSpan(extends.Days, extends.Hours, minutes, extends.Seconds, extends.Milliseconds); } + + /// + /// Adjusts the given timespan by the UTC offset. + /// e.g. EST is UTC-5, a TimeSpan of 9:00:00 would result in a universal TimeSpan of 14:00:00 + /// + /// + /// + public static TimeSpan ToUniversalTime(this TimeSpan extends) + { + TimeSpan offset = TimeZone.CurrentTimeZone.GetUtcOffset(IcdEnvironment.GetLocalTime()); + return extends - offset; + } + + /// + /// Adjusts the given timespan from the UTC offset. + /// e.g. EST is UTC-5, a TimeSpan of 9:00:00 would result in a local TimeSpan of 4:00:00 + /// + /// + /// + public static TimeSpan ToLocalTime(this TimeSpan extends) + { + TimeSpan offset = TimeZone.CurrentTimeZone.GetUtcOffset(IcdEnvironment.GetLocalTime()); + return extends + offset; + } } }