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

◆ GetDayOfNNN()

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

Definition at line 1560 of file DateTimeParse.cs.

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);
1570 if (!GetYearMonthDayOrder(dtfi.ShortDatePattern, out var order))
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)

References System.DateTimeParse.GetYearMonthDayOrder(), System.DateTimeParse.SetDateDMY(), System.DateTimeParse.SetDateMDY(), System.DateTimeParse.SetDateYDM(), System.DateTimeParse.SetDateYMD(), System.Globalization.DateTimeFormatInfo.ShortDatePattern, and System.DateTimeParse.TryAdjustYear().

Referenced by System.DateTimeParse.ProcessTerminalState().