3710 {
3711 TimeSpanSplitter timeSpanSplitter = default(TimeSpanSplitter);
3712 if (!timeSpanSplitter.TrySplitTimeSpan(
source, periodUsedToSeparateDay: true, out bytesConsumed))
3713 {
3714 value =
default(TimeSpan);
3715 return false;
3716 }
3717 bool isNegative = timeSpanSplitter.IsNegative;
3718 bool flag;
3719 switch (timeSpanSplitter.Separators)
3720 {
3721 case 0u:
3723 break;
3724 case 16777216u:
3726 break;
3727 case 33619968u:
3728 flag =
TryCreateTimeSpan(isNegative, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, 0u, 0u, out
value);
3729 break;
3730 case 16842752u:
3731 flag =
TryCreateTimeSpan(isNegative, 0u, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, 0u, out
value);
3732 break;
3733 case 33620224u:
3734 flag =
TryCreateTimeSpan(isNegative, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, timeSpanSplitter.V4, 0u, out
value);
3735 break;
3736 case 16843264u:
3737 flag =
TryCreateTimeSpan(isNegative, 0u, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, timeSpanSplitter.V4, out
value);
3738 break;
3739 case 33620226u:
3740 flag =
TryCreateTimeSpan(isNegative, timeSpanSplitter.V1, timeSpanSplitter.V2, timeSpanSplitter.V3, timeSpanSplitter.V4, timeSpanSplitter.V5, out
value);
3741 break;
3742 default:
3743 value =
default(TimeSpan);
3744 flag = false;
3745 break;
3746 }
3747 if (!flag)
3748 {
3749 bytesConsumed = 0;
3750 return false;
3751 }
3752 return true;
3753 }
static bool TryCreateTimeSpan(bool isNegative, uint days, uint hours, uint minutes, uint seconds, uint fraction, out TimeSpan timeSpan)