private static Boolean GetDayOfNNN(ref DateTimeResult result, ref DateTimeRawInfo raw, DateTimeFormatInfo dtfi)
{
if ((result.flags & ParseFlags.HaveDate) != 0) {
// Multiple dates in the input string
result.SetFailure(ParseFailureKind.Format, "Format_BadDateTime", null);
return false;
}
int n1 = raw.GetNumber(0);
int n2 = raw.GetNumber(1);;
int n3 = raw.GetNumber(2);
int order;
if (!GetYearMonthDayOrder(dtfi.ShortDatePattern, dtfi, out order)) {
result.SetFailure(ParseFailureKind.FormatWithParameter, "Format_BadDatePattern", dtfi.ShortDatePattern);
return false;
}
if (order == ORDER_YMD) {
if (SetDateYMD(ref result, AdjustYear(ref result, n1), n2, n3)) // YMD
{
result.flags |= ParseFlags.HaveDate;
return true;
}
} else if (order == ORDER_MDY) {
if (SetDateMDY(ref result, n1, n2, AdjustYear(ref result, n3))) // MDY
{
result.flags |= ParseFlags.HaveDate;
return true;
}
} else if (order == ORDER_DMY) {
if (SetDateDMY(ref result, n1, n2, AdjustYear(ref result, n3))) // DMY
{
result.flags |= ParseFlags.HaveDate;
return true;
}
} else if (order == ORDER_YDM) {
if (SetDateYDM(ref result, AdjustYear(ref result, n1), n2, n3)) // YDM
{
result.flags |= ParseFlags.HaveDate;
return true;
}
}
result.SetFailure(ParseFailureKind.Format, "Format_BadDateTime", null);
return false;
}