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

◆ TryParseExactInternal() [1/2]

static ParseFailureKind System.DateOnly.TryParseExactInternal ( ReadOnlySpan< char > s,
ReadOnlySpan< char > format,
IFormatProvider provider,
DateTimeStyles style,
out DateOnly result )
inlinestaticprivate

Definition at line 300 of file DateOnly.cs.

301 {
302 if (((uint)style & 0xFFFFFFF8u) != 0)
303 {
304 result = default(DateOnly);
305 return ParseFailureKind.FormatWithParameter;
306 }
307 if (format.Length == 1)
308 {
309 switch (format[0])
310 {
311 case 'O':
312 case 'o':
313 format = "yyyy'-'MM'-'dd";
314 provider = CultureInfo.InvariantCulture.DateTimeFormat;
315 break;
316 case 'R':
317 case 'r':
318 format = "ddd, dd MMM yyyy";
319 provider = CultureInfo.InvariantCulture.DateTimeFormat;
320 break;
321 }
322 }
323 DateTimeResult result2 = default(DateTimeResult);
324 result2.Init(s);
325 if (!DateTimeParse.TryParseExact(s, format, DateTimeFormatInfo.GetInstance(provider), style, ref result2))
326 {
327 result = default(DateOnly);
328 return ParseFailureKind.FormatWithOriginalDateTime;
329 }
330 if ((result2.flags & (ParseFlags.HaveHour | ParseFlags.HaveMinute | ParseFlags.HaveSecond | ParseFlags.HaveTime | ParseFlags.TimeZoneUsed | ParseFlags.TimeZoneUtc | ParseFlags.CaptureOffset | ParseFlags.UtcSortPattern)) != 0)
331 {
332 result = default(DateOnly);
333 return ParseFailureKind.WrongParts;
334 }
335 result = new DateOnly(DayNumberFromDateTime(result2.parsedDate));
336 return ParseFailureKind.None;
337 }
static CultureInfo InvariantCulture
static int DayNumberFromDateTime(DateTime dt)
Definition DateOnly.cs:33
DateOnly(int dayNumber)
Definition DateOnly.cs:43

References System.DateOnly.DateOnly(), System.DateOnly.DayNumberFromDateTime(), System.DateTimeResult.flags, System.format, System.DateTimeResult.Init(), System.Globalization.CultureInfo.InvariantCulture, System.DateTimeResult.parsedDate, System.s, and System.DateTimeParse.TryParseExact().

Referenced by System.DateOnly.ParseExact(), System.DateOnly.ParseExact(), System.DateOnly.TryParseExact(), and System.DateOnly.TryParseExact().