Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ UpdateLeapSecondCacheAndReturnUtcNow()

static unsafe DateTime System.DateTime.UpdateLeapSecondCacheAndReturnUtcNow ( )
inlinestaticprivate

Definition at line 1584 of file DateTime.cs.

1585 {
1586 System.Runtime.CompilerServices.Unsafe.SkipInit(out ulong num);
1588 ulong hundredNanoSecond = num % 10000;
1590 if (Interop.Kernel32.FileTimeToSystemTime(&num, &time) == Interop.BOOL.FALSE)
1591 {
1593 }
1594 if (time.Second >= 60)
1595 {
1597 }
1598 ulong num2 = num + 3000000000u;
1601 {
1603 }
1604 ulong num3;
1605 ulong num4;
1606 if (sYSTEMTIME.Second == time.Second)
1607 {
1608 num3 = num;
1610 }
1611 else
1612 {
1614 time2.Hour = 0;
1615 time2.Minute = 0;
1616 time2.Second = 0;
1618 System.Runtime.CompilerServices.Unsafe.SkipInit(out ulong num5);
1620 {
1622 }
1623 num3 = num5 + 863990000000L - 3000000000u;
1624 if (num - num3 >= 3000000000u)
1625 {
1627 }
1628 num4 = CreateDateTimeFromSystemTime(in time2, 0uL)._dateData + 863990000000L - 3000000000u;
1629 }
1630 Volatile.Write(ref s_leapSecondCache, new LeapSecondCache
1631 {
1632 OSFileTimeTicksAtStartOfValidityWindow = num3,
1633 DotnetDateDataAtStartOfValidityWindow = num4
1634 });
1635 return new DateTime(num4 + num - num3);
1636 [MethodImpl(MethodImplOptions.NoInlining)]
1638 {
1642 }
1643 }
static unsafe BOOL FileTimeToSystemTime(ulong *lpFileTime, SYSTEMTIME *lpSystemTime)
static unsafe void GetSystemTime(SYSTEMTIME *lpSystemTime)
static unsafe BOOL SystemTimeToFileTime(SYSTEMTIME *lpSystemTime, ulong *lpFileTime)
static void Write(ref bool location, bool value)
Definition Volatile.cs:74
static unsafe readonly delegate *unmanaged[SuppressGCTransition]< ulong *, void > s_pfnGetSystemTimeAsFileTime
Definition DateTime.cs:45
static DateTime CreateDateTimeFromSystemTime(in Interop.Kernel32.SYSTEMTIME time, ulong hundredNanoSecond)
Definition DateTime.cs:1543
static LeapSecondCache s_leapSecondCache
Definition DateTime.cs:47

References System.DateTime.CreateDateTimeFromSystemTime(), System.DateTime, System.Runtime.Serialization.Dictionary, Interop.Kernel32.FileTimeToSystemTime(), Interop.Kernel32.GetSystemTime(), System.L, System.DateTime.s_leapSecondCache, System.DateTime.s_pfnGetSystemTimeAsFileTime, Interop.Kernel32.SystemTimeToFileTime(), and System.Threading.Volatile.Write().