From f9a8be85d6cbba80453e9b15538f4420cdaf10d7 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Thu, 17 Dec 2020 11:40:16 -0500 Subject: [PATCH] feat: Added TimeSpan extension methods to converting to/from universal time --- .../Extensions/TimeSpanExtensions.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) 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; + } } }