System.TimeZoneInfo.GetUtcOffsetFromUtc C# (CSharp) Method

GetUtcOffsetFromUtc() static private method

static private GetUtcOffsetFromUtc ( System.DateTime time, TimeZoneInfo zone, System.Boolean &isDaylightSavings, System.Boolean &isAmbiguousLocalDst ) : System.TimeSpan
time System.DateTime
zone TimeZoneInfo
isDaylightSavings System.Boolean
isAmbiguousLocalDst System.Boolean
return System.TimeSpan
		static internal TimeSpan GetUtcOffsetFromUtc (DateTime time, TimeZoneInfo zone, out Boolean isDaylightSavings, out Boolean isAmbiguousLocalDst)
		{
			isDaylightSavings = false;
			isAmbiguousLocalDst = false;
			TimeSpan baseOffset = zone.BaseUtcOffset;

			if (zone.IsAmbiguousTime (time)) {
				isAmbiguousLocalDst = true;
				return baseOffset;
			}

			return zone.GetUtcOffset (time, out isDaylightSavings);
		}
#endregion

Usage Example

        public static DateTime FromBinary(long dateData)
        {
            long num2;

            if ((dateData & -9223372036854775808L) == 0L)
            {
                return(FromBinaryRaw(dateData));
            }
            long ticks = dateData & 0x3fffffffffffffffL;

            if (ticks > 0x3fffff36d5964000L)
            {
                ticks -= 0x4000000000000000L;
            }
            bool isAmbiguousLocalDst = false;

            if (ticks < 0L)
            {
                num2 = TimeZoneInfo.Local.GetUtcOffset(MinValue, TimeZoneInfoOptions.NoThrowOnInvalidTime).Ticks;
            }
            else if (ticks > 0x2bca2875f4373fffL)
            {
                num2 = TimeZoneInfo.Local.GetUtcOffset(MaxValue, TimeZoneInfoOptions.NoThrowOnInvalidTime).Ticks;
            }
            else
            {
                DateTime time = new DateTime(ticks, DateTimeKind.Utc);
                bool     isDaylightSavings = false;
                num2 = TimeZoneInfo.GetUtcOffsetFromUtc(time, TimeZoneInfo.Local, out isDaylightSavings, out isAmbiguousLocalDst).Ticks;
            }
            ticks += num2;
            if (ticks < 0L)
            {
                ticks += 0xc92a69c000L;
            }
            if ((ticks < 0L) || (ticks > 0x2bca2875f4373fffL))
            {
                throw new ArgumentException(Environment.GetResourceString("Argument_DateTimeBadBinaryData"), "dateData");
            }
            return(new DateTime(ticks, DateTimeKind.Local, isAmbiguousLocalDst));
        }
All Usage Examples Of System.TimeZoneInfo::GetUtcOffsetFromUtc