aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Time/Clock
diff options
context:
space:
mode:
authorCJ Bok <cjbok@ziggo.nl>2020-04-17 01:18:54 +0200
committerGitHub <noreply@github.com>2020-04-17 09:18:54 +1000
commit0a7c6caedffd59011077b49cd6493c7a841a66f5 (patch)
treec32ef5e713d0e7e1b1ec65e7a2f17241d9167398 /Ryujinx.HLE/HOS/Services/Time/Clock
parente4ee61d6c3984d108a9fd9e29c86dd154a04d0c5 (diff)
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
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Time/Clock')
-rw-r--r--Ryujinx.HLE/HOS/Services/Time/Clock/Types/TimeSpanType.cs15
1 files changed, 14 insertions, 1 deletions
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);