From 0a7c6caedffd59011077b49cd6493c7a841a66f5 Mon Sep 17 00:00:00 2001 From: CJ Bok Date: Fri, 17 Apr 2020 01:18:54 +0200 Subject: System Time Offset Implementation (#1101) * System Time Offset Implementation * Addressed @Thog's comments * Addressed JD's comments * Addressed @Thog's and @AcK77's comments * formatting correction --- Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'Ryujinx.HLE/HOS/Services/Time/Clock') diff --git a/Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs index c336ad41..89497d82 100644 --- a/Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs +++ b/Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs @@ -1,4 +1,5 @@ -using System.Runtime.InteropServices; +using System; +using System.Runtime.InteropServices; namespace Ryujinx.HLE.HOS.Services.Time.Clock { @@ -9,6 +10,8 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock public static readonly TimeSpanType Zero = new TimeSpanType(0); + private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + public long NanoSeconds; public TimeSpanType(long nanoSeconds) @@ -21,6 +24,16 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock return NanoSeconds / NanoSecondsPerSecond; } + public TimeSpanType AddSeconds(long seconds) + { + return new TimeSpanType(NanoSeconds + (seconds * NanoSecondsPerSecond)); + } + + public bool IsDaylightSavingTime() + { + return UnixEpoch.AddSeconds(ToSeconds()).ToLocalTime().IsDaylightSavingTime(); + } + public static TimeSpanType FromSeconds(long seconds) { return new TimeSpanType(seconds * NanoSecondsPerSecond); -- cgit v1.2.3