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

◆ TryParseExactInternal() [2/2]

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

Definition at line 400 of file TimeOnly.cs.

401 {
402 if (((uint)style & 0xFFFFFFF8u) != 0 || formats == null)
403 {
404 result = default(TimeOnly);
405 return ParseFailureKind.FormatWithParameter;
406 }
407 DateTimeFormatInfo instance = DateTimeFormatInfo.GetInstance(provider);
408 for (int i = 0; i < formats.Length; i++)
409 {
410 DateTimeFormatInfo dtfi = instance;
411 string text = formats[i];
412 if (string.IsNullOrEmpty(text))
413 {
414 result = default(TimeOnly);
415 return ParseFailureKind.FormatWithFormatSpecifier;
416 }
417 if (text.Length == 1)
418 {
419 switch (text[0])
420 {
421 case 'O':
422 case 'o':
423 text = "HH':'mm':'ss'.'fffffff";
424 dtfi = CultureInfo.InvariantCulture.DateTimeFormat;
425 break;
426 case 'R':
427 case 'r':
428 text = "HH':'mm':'ss";
429 dtfi = CultureInfo.InvariantCulture.DateTimeFormat;
430 break;
431 }
432 }
433 DateTimeResult result2 = default(DateTimeResult);
434 result2.Init(s);
435 if (DateTimeParse.TryParseExact(s, text, dtfi, style, ref result2) && (result2.flags & (ParseFlags.HaveYear | ParseFlags.HaveMonth | ParseFlags.HaveDay | ParseFlags.HaveDate | ParseFlags.TimeZoneUsed | ParseFlags.TimeZoneUtc | ParseFlags.ParsedMonthName | ParseFlags.CaptureOffset | ParseFlags.UtcSortPattern)) == 0)
436 {
437 result = new TimeOnly(result2.parsedDate.TimeOfDay.Ticks);
438 return ParseFailureKind.None;
439 }
440 }
441 result = default(TimeOnly);
442 return ParseFailureKind.FormatWithOriginalDateTime;
443 }
static CultureInfo InvariantCulture
TimeOnly(int hour, int minute)
Definition TimeOnly.cs:31

References System.TimeOnly.TimeOnly(), System.DateTimeResult.flags, System.formats, System.DateTimeResult.Init(), System.Globalization.CultureInfo.InvariantCulture, System.DateTimeResult.parsedDate, System.s, System.text, System.TimeSpan.Ticks, System.DateTime.TimeOfDay, and System.DateTimeParse.TryParseExact().