From 17c2a959e6c997ac122cf2558afee98d4d1e5081 Mon Sep 17 00:00:00 2001 From: ig Date: Mon, 20 Mar 2023 13:25:19 +0100 Subject: [PATCH] introduce implicit converters for UnixTime & UnixTimeSpan --- csharp/Lib/Time/Unix/UnixTime.Converters.cs | 3 +++ csharp/Lib/Time/Unix/UnixTimeSpan.Converters.cs | 9 +++++++++ csharp/Lib/Time/Unix/UnixTimeSpan.cs | 5 +---- csharp/Lib/Time/Unix/UnixTimeSpanExtensions.cs | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 csharp/Lib/Time/Unix/UnixTimeSpan.Converters.cs diff --git a/csharp/Lib/Time/Unix/UnixTime.Converters.cs b/csharp/Lib/Time/Unix/UnixTime.Converters.cs index 0d5d17aeb..7c28860a9 100644 --- a/csharp/Lib/Time/Unix/UnixTime.Converters.cs +++ b/csharp/Lib/Time/Unix/UnixTime.Converters.cs @@ -3,4 +3,7 @@ namespace InnovEnergy.Lib.Time.Unix; public readonly partial struct UnixTime { public DateTime ToUtcDateTime() => DateTime.UnixEpoch + TimeSpan.FromSeconds(Ticks); + + public static implicit operator DateTime(UnixTime unixTimeSpan) => unixTimeSpan.ToUtcDateTime(); + public static implicit operator UnixTime(DateTime dateTime) => FromUtcDateTime(dateTime); } \ No newline at end of file diff --git a/csharp/Lib/Time/Unix/UnixTimeSpan.Converters.cs b/csharp/Lib/Time/Unix/UnixTimeSpan.Converters.cs new file mode 100644 index 000000000..b2bce89d4 --- /dev/null +++ b/csharp/Lib/Time/Unix/UnixTimeSpan.Converters.cs @@ -0,0 +1,9 @@ +namespace InnovEnergy.Lib.Time.Unix; + +public readonly partial struct UnixTimeSpan +{ + public TimeSpan ToTimeSpan() => TimeSpan.FromSeconds(Ticks); + + public static implicit operator TimeSpan(UnixTimeSpan unixTimeSpan) => unixTimeSpan.ToTimeSpan(); + public static implicit operator UnixTimeSpan(TimeSpan timeSpan) => FromTimeSpan(timeSpan); +} \ No newline at end of file diff --git a/csharp/Lib/Time/Unix/UnixTimeSpan.cs b/csharp/Lib/Time/Unix/UnixTimeSpan.cs index d525deaba..4dd19d675 100644 --- a/csharp/Lib/Time/Unix/UnixTimeSpan.cs +++ b/csharp/Lib/Time/Unix/UnixTimeSpan.cs @@ -4,8 +4,5 @@ public readonly partial struct UnixTimeSpan { public UInt32 Ticks { get; } - public TimeSpan ToTimeSpan() - { - return TimeSpan.FromSeconds(Ticks); - } + } \ No newline at end of file diff --git a/csharp/Lib/Time/Unix/UnixTimeSpanExtensions.cs b/csharp/Lib/Time/Unix/UnixTimeSpanExtensions.cs index fd98e3487..625253a88 100644 --- a/csharp/Lib/Time/Unix/UnixTimeSpanExtensions.cs +++ b/csharp/Lib/Time/Unix/UnixTimeSpanExtensions.cs @@ -1,6 +1,6 @@ namespace InnovEnergy.Lib.Time.Unix; -public static class UnixTimeDeltaExtensions +public static class UnixTimeSpanExtensions { public static UnixTimeSpan Seconds(this Int32 s) => UnixTimeSpan.FromSeconds(s); public static UnixTimeSpan Minutes(this Int32 m) => UnixTimeSpan.FromMinutes(m);