1993    {
 1994        if ((result.flags & ParseFlags.HaveYear) != 0)
 1995        {
 1996            if ((result.flags & ParseFlags.HaveMonth) == 0 && (result.flags & ParseFlags.HaveDay) == 0 && 
TryAdjustYear(ref result, raw.year, out result.Year) && 
SetDateYMD(ref result, result.Year, raw.GetNumber(0), raw.GetNumber(1)))
 
 1997            {
 1998                return true;
 1999            }
 2000        }
 2001        else if ((result.flags & ParseFlags.HaveMonth) != 0 && (result.flags & ParseFlags.HaveYear) == 0 && (result.flags & ParseFlags.HaveDay) == 0)
 2002        {
 2004            {
 2005                result.SetFailure(ParseFailureKind.FormatWithParameter, 
"Format_BadDatePattern", dtfi.
ShortDatePattern);
 
 2006                return false;
 2007            }
 2008            int adjustedYear;
 2009            if (order == 0)
 2010            {
 2011                if (
TryAdjustYear(ref result, raw.GetNumber(0), out adjustedYear) && 
SetDateYMD(ref result, adjustedYear, result.Month, raw.GetNumber(1)))
 
 2012                {
 2013                    return true;
 2014                }
 2015            }
 2016            else if (
TryAdjustYear(ref result, raw.GetNumber(1), out adjustedYear) && 
SetDateYMD(ref result, adjustedYear, result.Month, raw.GetNumber(0)))
 
 2017            {
 2018                return true;
 2019            }
 2020        }
 2021        result.SetBadDateTimeFailure();
 2022        return false;
 2023    }
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)