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

◆ GetDateOfNNDS()

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

Definition at line 1992 of file DateTimeParse.cs.

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

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

Referenced by System.DateTimeParse.ProcessTerminalState().