1561    {
 1562        if ((result.flags & ParseFlags.HaveDate) != 0)
 1563        {
 1564            result.SetBadDateTimeFailure();
 1565            return false;
 1566        }
 1567        int number = raw.GetNumber(0);
 1568        int number2 = raw.GetNumber(1);
 1569        int number3 = raw.GetNumber(2);
 1571        {
 1572            result.SetFailure(ParseFailureKind.FormatWithParameter, 
"Format_BadDatePattern", dtfi.
ShortDatePattern);
 
 1573            return false;
 1574        }
 1575        int adjustedYear;
 1576        switch (order)
 1577        {
 1578        case 0:
 1579            if (
TryAdjustYear(ref result, number, out adjustedYear) && 
SetDateYMD(ref result, adjustedYear, number2, number3))
 
 1580            {
 1581                result.flags |= ParseFlags.HaveDate;
 1582                return true;
 1583            }
 1584            break;
 1585        case 1:
 1586            if (
TryAdjustYear(ref result, number3, out adjustedYear) && 
SetDateMDY(ref result, number, number2, adjustedYear))
 
 1587            {
 1588                result.flags |= ParseFlags.HaveDate;
 1589                return true;
 1590            }
 1591            break;
 1592        case 2:
 1593            if (
TryAdjustYear(ref result, number3, out adjustedYear) && 
SetDateDMY(ref result, number, number2, adjustedYear))
 
 1594            {
 1595                result.flags |= ParseFlags.HaveDate;
 1596                return true;
 1597            }
 1598            break;
 1599        case 3:
 1600            if (
TryAdjustYear(ref result, number, out adjustedYear) && 
SetDateYDM(ref result, adjustedYear, number2, number3))
 
 1601            {
 1602                result.flags |= ParseFlags.HaveDate;
 1603                return true;
 1604            }
 1605            break;
 1606        }
 1607        result.SetBadDateTimeFailure();
 1608        return false;
 1609    }
static bool SetDateYMD(ref DateTimeResult result, int year, int month, int day)
 
static bool GetYearMonthDayOrder(string datePattern, out int order)
 
static bool TryAdjustYear(ref DateTimeResult result, int year, out int adjustedYear)
 
static bool SetDateDMY(ref DateTimeResult result, int day, int month, int year)
 
static bool SetDateYDM(ref DateTimeResult result, int year, int day, int month)
 
static bool SetDateMDY(ref DateTimeResult result, int month, int day, int year)