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);
 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)