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

◆ TryParseExactInternal() [2/2]

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

Definition at line 349 of file DateOnly.cs.

350 {
351 if (((uint)style & 0xFFFFFFF8u) != 0 || formats == null)
352 {
353 result = default(DateOnly);
354 return ParseFailureKind.FormatWithParameter;
355 }
356 DateTimeFormatInfo instance = DateTimeFormatInfo.GetInstance(provider);
357 for (int i = 0; i < formats.Length; i++)
358 {
359 DateTimeFormatInfo dtfi = instance;
360 string text = formats[i];
361 if (string.IsNullOrEmpty(text))
362 {
363 result = default(DateOnly);
364 return ParseFailureKind.FormatWithFormatSpecifier;
365 }
366 if (text.Length == 1)
367 {
368 switch (text[0])
369 {
370 case 'O':
371 case 'o':
372 text = "yyyy'-'MM'-'dd";
373 dtfi = CultureInfo.InvariantCulture.DateTimeFormat;
374 break;
375 case 'R':
376 case 'r':
377 text = "ddd, dd MMM yyyy";
378 dtfi = CultureInfo.InvariantCulture.DateTimeFormat;
379 break;
380 }
381 }
382 DateTimeResult result2 = default(DateTimeResult);
383 result2.Init(s);
384 if (DateTimeParse.TryParseExact(s, text, dtfi, style, ref result2) && (result2.flags & (ParseFlags.HaveHour | ParseFlags.HaveMinute | ParseFlags.HaveSecond | ParseFlags.HaveTime | ParseFlags.TimeZoneUsed | ParseFlags.TimeZoneUtc | ParseFlags.CaptureOffset | ParseFlags.UtcSortPattern)) == 0)
385 {
386 result = new DateOnly(DayNumberFromDateTime(result2.parsedDate));
387 return ParseFailureKind.None;
388 }
389 }
390 result = default(DateOnly);
391 return ParseFailureKind.FormatWithOriginalDateTime;
392 }
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.formats, System.DateTimeResult.Init(), System.Globalization.CultureInfo.InvariantCulture, System.DateTimeResult.parsedDate, System.s, System.text, and System.DateTimeParse.TryParseExact().