scripts
This commit is contained in:
@@ -0,0 +1,185 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Globalization;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace System
|
||||
{
|
||||
// Token: 0x020006B2 RID: 1714
|
||||
[Serializable]
|
||||
internal class CurrentSystemTimeZone : TimeZone, IDeserializationCallback
|
||||
{
|
||||
// Token: 0x060040EC RID: 16620 RVA: 0x000DD114 File Offset: 0x000DB314
|
||||
internal CurrentSystemTimeZone()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060040ED RID: 16621 RVA: 0x000DD128 File Offset: 0x000DB328
|
||||
internal CurrentSystemTimeZone(long lnow)
|
||||
{
|
||||
DateTime dateTime = new DateTime(lnow);
|
||||
long[] array;
|
||||
string[] array2;
|
||||
if (!CurrentSystemTimeZone.GetTimeZoneData(dateTime.Year, out array, out array2))
|
||||
{
|
||||
throw new NotSupportedException(Locale.GetText("Can't get timezone name."));
|
||||
}
|
||||
this.m_standardName = Locale.GetText(array2[0]);
|
||||
this.m_daylightName = Locale.GetText(array2[1]);
|
||||
this.m_ticksOffset = array[2];
|
||||
DaylightTime daylightTimeFromData = this.GetDaylightTimeFromData(array);
|
||||
this.m_CachedDaylightChanges.Add(dateTime.Year, daylightTimeFromData);
|
||||
this.OnDeserialization(daylightTimeFromData);
|
||||
}
|
||||
|
||||
// Token: 0x060040EE RID: 16622 RVA: 0x000DD1C0 File Offset: 0x000DB3C0
|
||||
void IDeserializationCallback.OnDeserialization(object sender)
|
||||
{
|
||||
this.OnDeserialization(null);
|
||||
}
|
||||
|
||||
// Token: 0x060040EF RID: 16623
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
private static extern bool GetTimeZoneData(int year, out long[] data, out string[] names);
|
||||
|
||||
// Token: 0x17000BFD RID: 3069
|
||||
// (get) Token: 0x060040F0 RID: 16624 RVA: 0x000DD1CC File Offset: 0x000DB3CC
|
||||
public override string DaylightName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_daylightName;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000BFE RID: 3070
|
||||
// (get) Token: 0x060040F1 RID: 16625 RVA: 0x000DD1D4 File Offset: 0x000DB3D4
|
||||
public override string StandardName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_standardName;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060040F2 RID: 16626 RVA: 0x000DD1DC File Offset: 0x000DB3DC
|
||||
public override DaylightTime GetDaylightChanges(int year)
|
||||
{
|
||||
if (year < 1 || year > 9999)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("year", year + Locale.GetText(" is not in a range between 1 and 9999."));
|
||||
}
|
||||
if (year == CurrentSystemTimeZone.this_year)
|
||||
{
|
||||
return CurrentSystemTimeZone.this_year_dlt;
|
||||
}
|
||||
Hashtable cachedDaylightChanges = this.m_CachedDaylightChanges;
|
||||
DaylightTime daylightTime2;
|
||||
lock (cachedDaylightChanges)
|
||||
{
|
||||
DaylightTime daylightTime = (DaylightTime)this.m_CachedDaylightChanges[year];
|
||||
if (daylightTime == null)
|
||||
{
|
||||
long[] array;
|
||||
string[] array2;
|
||||
if (!CurrentSystemTimeZone.GetTimeZoneData(year, out array, out array2))
|
||||
{
|
||||
throw new ArgumentException(Locale.GetText("Can't get timezone data for " + year));
|
||||
}
|
||||
daylightTime = this.GetDaylightTimeFromData(array);
|
||||
this.m_CachedDaylightChanges.Add(year, daylightTime);
|
||||
}
|
||||
daylightTime2 = daylightTime;
|
||||
}
|
||||
return daylightTime2;
|
||||
}
|
||||
|
||||
// Token: 0x060040F3 RID: 16627 RVA: 0x000DD2CC File Offset: 0x000DB4CC
|
||||
public override TimeSpan GetUtcOffset(DateTime time)
|
||||
{
|
||||
if (this.IsDaylightSavingTime(time))
|
||||
{
|
||||
return this.utcOffsetWithDLS;
|
||||
}
|
||||
return this.utcOffsetWithOutDLS;
|
||||
}
|
||||
|
||||
// Token: 0x060040F4 RID: 16628 RVA: 0x000DD2E8 File Offset: 0x000DB4E8
|
||||
private void OnDeserialization(DaylightTime dlt)
|
||||
{
|
||||
if (dlt == null)
|
||||
{
|
||||
CurrentSystemTimeZone.this_year = DateTime.Now.Year;
|
||||
long[] array;
|
||||
string[] array2;
|
||||
if (!CurrentSystemTimeZone.GetTimeZoneData(CurrentSystemTimeZone.this_year, out array, out array2))
|
||||
{
|
||||
throw new ArgumentException(Locale.GetText("Can't get timezone data for " + CurrentSystemTimeZone.this_year));
|
||||
}
|
||||
dlt = this.GetDaylightTimeFromData(array);
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentSystemTimeZone.this_year = dlt.Start.Year;
|
||||
}
|
||||
this.utcOffsetWithOutDLS = new TimeSpan(this.m_ticksOffset);
|
||||
this.utcOffsetWithDLS = new TimeSpan(this.m_ticksOffset + dlt.Delta.Ticks);
|
||||
CurrentSystemTimeZone.this_year_dlt = dlt;
|
||||
}
|
||||
|
||||
// Token: 0x060040F5 RID: 16629 RVA: 0x000DD398 File Offset: 0x000DB598
|
||||
private DaylightTime GetDaylightTimeFromData(long[] data)
|
||||
{
|
||||
return new DaylightTime(new DateTime(data[0]), new DateTime(data[1]), new TimeSpan(data[3]));
|
||||
}
|
||||
|
||||
// Token: 0x040019F2 RID: 6642
|
||||
private string m_standardName;
|
||||
|
||||
// Token: 0x040019F3 RID: 6643
|
||||
private string m_daylightName;
|
||||
|
||||
// Token: 0x040019F4 RID: 6644
|
||||
private Hashtable m_CachedDaylightChanges = new Hashtable(1);
|
||||
|
||||
// Token: 0x040019F5 RID: 6645
|
||||
private long m_ticksOffset;
|
||||
|
||||
// Token: 0x040019F6 RID: 6646
|
||||
[NonSerialized]
|
||||
private TimeSpan utcOffsetWithOutDLS;
|
||||
|
||||
// Token: 0x040019F7 RID: 6647
|
||||
[NonSerialized]
|
||||
private TimeSpan utcOffsetWithDLS;
|
||||
|
||||
// Token: 0x040019F8 RID: 6648
|
||||
private static int this_year;
|
||||
|
||||
// Token: 0x040019F9 RID: 6649
|
||||
private static DaylightTime this_year_dlt;
|
||||
|
||||
// Token: 0x020006B3 RID: 1715
|
||||
internal enum TimeZoneData
|
||||
{
|
||||
// Token: 0x040019FB RID: 6651
|
||||
DaylightSavingStartIdx,
|
||||
// Token: 0x040019FC RID: 6652
|
||||
DaylightSavingEndIdx,
|
||||
// Token: 0x040019FD RID: 6653
|
||||
UtcOffsetIdx,
|
||||
// Token: 0x040019FE RID: 6654
|
||||
AdditionalDaylightOffsetIdx
|
||||
}
|
||||
|
||||
// Token: 0x020006B4 RID: 1716
|
||||
internal enum TimeZoneNames
|
||||
{
|
||||
// Token: 0x04001A00 RID: 6656
|
||||
StandardNameIdx,
|
||||
// Token: 0x04001A01 RID: 6657
|
||||
DaylightNameIdx
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user