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

◆ GetDayOfMNN()

static bool System.DateTimeParse.GetDayOfMNN ( ref DateTimeResult result,
ref DateTimeRawInfo raw,
DateTimeFormatInfo dtfi )
inlinestaticprivate

Definition at line 1704 of file DateTimeParse.cs.

1705 {
1706 if ((result.flags & ParseFlags.HaveDate) != 0)
1707 {
1708 result.SetBadDateTimeFailure();
1709 return false;
1710 }
1711 int number = raw.GetNumber(0);
1712 int number2 = raw.GetNumber(1);
1713 if (!GetYearMonthDayOrder(dtfi.ShortDatePattern, out var order))
1714 {
1715 result.SetFailure(ParseFailureKind.FormatWithParameter, "Format_BadDatePattern", dtfi.ShortDatePattern);
1716 return false;
1717 }
1718 int adjustedYear;
1719 switch (order)
1720 {
1721 case 1:
1722 if (TryAdjustYear(ref result, number2, out adjustedYear) && result.calendar.IsValidDay(adjustedYear, raw.month, number, result.era))
1723 {
1724 result.SetDate(adjustedYear, raw.month, number);
1725 result.flags |= ParseFlags.HaveDate;
1726 return true;
1727 }
1728 if (TryAdjustYear(ref result, number, out adjustedYear) && result.calendar.IsValidDay(adjustedYear, raw.month, number2, result.era))
1729 {
1730 result.SetDate(adjustedYear, raw.month, number2);
1731 result.flags |= ParseFlags.HaveDate;
1732 return true;
1733 }
1734 break;
1735 case 0:
1736 if (TryAdjustYear(ref result, number, out adjustedYear) && result.calendar.IsValidDay(adjustedYear, raw.month, number2, result.era))
1737 {
1738 result.SetDate(adjustedYear, raw.month, number2);
1739 result.flags |= ParseFlags.HaveDate;
1740 return true;
1741 }
1742 if (TryAdjustYear(ref result, number2, out adjustedYear) && result.calendar.IsValidDay(adjustedYear, raw.month, number, result.era))
1743 {
1744 result.SetDate(adjustedYear, raw.month, number);
1745 result.flags |= ParseFlags.HaveDate;
1746 return true;
1747 }
1748 break;
1749 case 2:
1750 if (TryAdjustYear(ref result, number2, out adjustedYear) && result.calendar.IsValidDay(adjustedYear, raw.month, number, result.era))
1751 {
1752 result.SetDate(adjustedYear, raw.month, number);
1753 result.flags |= ParseFlags.HaveDate;
1754 return true;
1755 }
1756 if (TryAdjustYear(ref result, number, out adjustedYear) && result.calendar.IsValidDay(adjustedYear, raw.month, number2, result.era))
1757 {
1758 result.SetDate(adjustedYear, raw.month, number2);
1759 result.flags |= ParseFlags.HaveDate;
1760 return true;
1761 }
1762 break;
1763 }
1764 result.SetBadDateTimeFailure();
1765 return false;
1766 }
static bool GetYearMonthDayOrder(string datePattern, out int order)
static bool TryAdjustYear(ref DateTimeResult result, int year, out int adjustedYear)

References System.DateTimeParse.GetYearMonthDayOrder(), System.Globalization.DateTimeFormatInfo.ShortDatePattern, and System.DateTimeParse.TryAdjustYear().

Referenced by System.DateTimeParse.ProcessHebrewTerminalState(), and System.DateTimeParse.ProcessTerminalState().