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

◆ GetIsDaylightSavingsFromUtc()

static bool System.TimeZoneInfo.GetIsDaylightSavingsFromUtc ( DateTime time,
int year,
TimeSpan utc,
AdjustmentRule rule,
int? ruleIndex,
out bool isAmbiguousLocalDst,
TimeZoneInfo zone )
inlinestaticprivate

Definition at line 1747 of file TimeZoneInfo.cs.

1748 {
1749 isAmbiguousLocalDst = false;
1750 if (rule == null)
1751 {
1752 return false;
1753 }
1755 bool ignoreYearAdjustment = false;
1756 TimeSpan daylightSavingsStartOffsetFromUtc = zone.GetDaylightSavingsStartOffsetFromUtc(utc, rule, ruleIndex);
1758 if (rule.IsStartDateMarkerForBeginningOfYear() && daylightTime.Start.Year > DateTime.MinValue.Year)
1759 {
1760 int? ruleIndex2;
1761 AdjustmentRule adjustmentRuleForTime = zone.GetAdjustmentRuleForTime(new DateTime(daylightTime.Start.Year - 1, 12, 31), out ruleIndex2);
1762 if (adjustmentRuleForTime != null && adjustmentRuleForTime.IsEndDateMarkerForEndOfYear())
1763 {
1764 dateTime = zone.GetDaylightTime(daylightTime.Start.Year - 1, adjustmentRuleForTime, ruleIndex2).Start - utc - adjustmentRuleForTime.BaseUtcOffsetDelta;
1765 ignoreYearAdjustment = true;
1766 }
1767 else
1768 {
1769 dateTime = new DateTime(daylightTime.Start.Year, 1, 1, 0, 0, 0) - daylightSavingsStartOffsetFromUtc;
1770 }
1771 }
1772 else
1773 {
1775 }
1778 if (rule.IsEndDateMarkerForEndOfYear() && daylightTime.End.Year < DateTime.MaxValue.Year)
1779 {
1780 int? ruleIndex3;
1781 AdjustmentRule adjustmentRuleForTime2 = zone.GetAdjustmentRuleForTime(new DateTime(daylightTime.End.Year + 1, 1, 1), out ruleIndex3);
1782 if (adjustmentRuleForTime2 != null && adjustmentRuleForTime2.IsStartDateMarkerForBeginningOfYear())
1783 {
1784 dateTime2 = ((!adjustmentRuleForTime2.IsEndDateMarkerForEndOfYear()) ? (zone.GetDaylightTime(daylightTime.End.Year + 1, adjustmentRuleForTime2, ruleIndex3).End - utc - adjustmentRuleForTime2.BaseUtcOffsetDelta - adjustmentRuleForTime2.DaylightDelta) : (new DateTime(daylightTime.End.Year + 1, 12, 31) - utc - adjustmentRuleForTime2.BaseUtcOffsetDelta - adjustmentRuleForTime2.DaylightDelta));
1785 ignoreYearAdjustment = true;
1786 }
1787 else
1788 {
1789 dateTime2 = new DateTime(daylightTime.End.Year + 1, 1, 1, 0, 0, 0).AddTicks(-1L) - daylightSavingsEndOffsetFromUtc;
1790 }
1791 }
1792 else
1793 {
1795 }
1798 if (daylightTime.Delta.Ticks > 0)
1799 {
1802 }
1803 else
1804 {
1807 }
1809 if (flag)
1810 {
1811 isAmbiguousLocalDst = time >= dateTime3 && time < dateTime4;
1812 if (!isAmbiguousLocalDst && dateTime3.Year != dateTime4.Year)
1813 {
1814 try
1815 {
1816 DateTime dateTime5 = dateTime3.AddYears(1);
1817 DateTime dateTime6 = dateTime4.AddYears(1);
1818 isAmbiguousLocalDst = time >= dateTime5 && time < dateTime6;
1819 }
1820 catch (ArgumentOutOfRangeException)
1821 {
1822 }
1824 {
1825 try
1826 {
1827 DateTime dateTime5 = dateTime3.AddYears(-1);
1828 DateTime dateTime6 = dateTime4.AddYears(-1);
1829 isAmbiguousLocalDst = time >= dateTime5 && time < dateTime6;
1830 }
1831 catch (ArgumentOutOfRangeException)
1832 {
1833 }
1834 }
1835 }
1836 }
1837 return flag;
1838 }
static TimeSpan GetDaylightSavingsEndOffsetFromUtc(TimeSpan baseUtcOffset, AdjustmentRule rule)
static bool CheckIsDst(DateTime startTime, DateTime time, DateTime endTime, bool ignoreYearAdjustment, AdjustmentRule rule)

References System.TimeZoneInfo.CheckIsDst(), System.DateTime, System.Runtime.Serialization.Dictionary, System.TimeZoneInfo.GetDaylightSavingsEndOffsetFromUtc(), System.L, System.DateTime.MaxValue, System.DateTime.MinValue, and System.year.

Referenced by System.TimeZoneInfo.GetDateTimeNowUtcOffsetFromUtc(), and System.TimeZoneInfo.GetUtcOffsetFromUtc().