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

◆ TryParse()

bool System.Globalization.TimeSpanParse.StringParser.TryParse ( ReadOnlySpan< char > input,
ref TimeSpanResult result )
inlinepackage

Definition at line 538 of file TimeSpanParse.cs.

539 {
540 result.parsedTimeSpan = default(TimeSpan);
541 _str = input;
542 _len = input.Length;
543 _pos = -1;
544 NextChar();
545 SkipBlanks();
546 bool flag = false;
547 if (_ch == '-')
548 {
549 flag = true;
550 NextChar();
551 }
552 long time;
553 if (NextNonDigit() == ':')
554 {
555 if (!ParseTime(out time, ref result))
556 {
557 return false;
558 }
559 }
560 else
561 {
562 if (!ParseInt(10675199, out var i, ref result))
563 {
564 return false;
565 }
566 time = i * 864000000000L;
567 if (_ch == '.')
568 {
569 NextChar();
570 if (!ParseTime(out var time2, ref result))
571 {
572 return false;
573 }
574 time += time2;
575 }
576 }
577 if (flag)
578 {
579 time = -time;
580 if (time > 0)
581 {
582 return result.SetOverflowFailure();
583 }
584 }
585 else if (time < 0)
586 {
587 return result.SetOverflowFailure();
588 }
589 SkipBlanks();
590 if (_pos < _len)
591 {
592 return result.SetBadTimeSpanFailure();
593 }
594 result.parsedTimeSpan = new TimeSpan(time);
595 return true;
596 }
bool ParseTime(out long time, ref TimeSpanResult result)
bool ParseInt(int max, out int i, ref TimeSpanResult result)

References System.Globalization.TimeSpanParse.StringParser._ch, System.Globalization.TimeSpanParse.StringParser._len, System.Globalization.TimeSpanParse.StringParser._pos, System.Globalization.TimeSpanParse.StringParser._str, System.input, System.L, System.Globalization.TimeSpanParse.StringParser.NextChar(), System.Globalization.TimeSpanParse.StringParser.NextNonDigit(), System.Globalization.TimeSpanParse.StringParser.ParseInt(), System.Globalization.TimeSpanParse.StringParser.ParseTime(), and System.Globalization.TimeSpanParse.StringParser.SkipBlanks().