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

◆ ProcessTerminal_HMS_F_D()

static bool System.Globalization.TimeSpanParse.ProcessTerminal_HMS_F_D ( ref TimeSpanRawInfo raw,
TimeSpanStandardStyles style,
ref TimeSpanResult result )
inlinestaticprivate

Definition at line 878 of file TimeSpanParse.cs.

879 {
880 if (raw._sepCount != 5 || (style & TimeSpanStandardStyles.RequireFull) != 0)
881 {
882 return result.SetBadTimeSpanFailure();
883 }
884 bool flag = (style & TimeSpanStandardStyles.Invariant) != 0;
885 bool flag2 = (style & TimeSpanStandardStyles.Localized) != 0;
886 long result2 = 0L;
887 bool flag3 = false;
888 bool flag4 = false;
889 bool flag5 = false;
890 TimeSpanToken timeSpanToken = new TimeSpanToken(0);
891 if (flag)
892 {
893 if (raw.FullHMSFMatch(TimeSpanFormat.PositiveInvariantFormatLiterals))
894 {
895 flag3 = true;
896 flag4 = TryTimeToTicks(flag3, timeSpanToken, raw._numbers0, raw._numbers1, raw._numbers2, raw._numbers3, out result2);
897 flag5 = flag5 || !flag4;
898 }
899 if (!flag4 && raw.FullDHMSMatch(TimeSpanFormat.PositiveInvariantFormatLiterals))
900 {
901 flag3 = true;
902 flag4 = TryTimeToTicks(flag3, raw._numbers0, raw._numbers1, raw._numbers2, raw._numbers3, timeSpanToken, out result2);
903 flag5 = flag5 || !flag4;
904 }
905 if (!flag4 && raw.FullAppCompatMatch(TimeSpanFormat.PositiveInvariantFormatLiterals))
906 {
907 flag3 = true;
908 flag4 = TryTimeToTicks(flag3, raw._numbers0, raw._numbers1, raw._numbers2, timeSpanToken, raw._numbers3, out result2);
909 flag5 = flag5 || !flag4;
910 }
911 if (!flag4 && raw.FullHMSFMatch(TimeSpanFormat.NegativeInvariantFormatLiterals))
912 {
913 flag3 = false;
914 flag4 = TryTimeToTicks(flag3, timeSpanToken, raw._numbers0, raw._numbers1, raw._numbers2, raw._numbers3, out result2);
915 flag5 = flag5 || !flag4;
916 }
917 if (!flag4 && raw.FullDHMSMatch(TimeSpanFormat.NegativeInvariantFormatLiterals))
918 {
919 flag3 = false;
920 flag4 = TryTimeToTicks(flag3, raw._numbers0, raw._numbers1, raw._numbers2, raw._numbers3, timeSpanToken, out result2);
921 flag5 = flag5 || !flag4;
922 }
923 if (!flag4 && raw.FullAppCompatMatch(TimeSpanFormat.NegativeInvariantFormatLiterals))
924 {
925 flag3 = false;
926 flag4 = TryTimeToTicks(flag3, raw._numbers0, raw._numbers1, raw._numbers2, timeSpanToken, raw._numbers3, out result2);
927 flag5 = flag5 || !flag4;
928 }
929 }
930 if (flag2)
931 {
932 if (!flag4 && raw.FullHMSFMatch(raw.PositiveLocalized))
933 {
934 flag3 = true;
935 flag4 = TryTimeToTicks(flag3, timeSpanToken, raw._numbers0, raw._numbers1, raw._numbers2, raw._numbers3, out result2);
936 flag5 = flag5 || !flag4;
937 }
938 if (!flag4 && raw.FullDHMSMatch(raw.PositiveLocalized))
939 {
940 flag3 = true;
941 flag4 = TryTimeToTicks(flag3, raw._numbers0, raw._numbers1, raw._numbers2, raw._numbers3, timeSpanToken, out result2);
942 flag5 = flag5 || !flag4;
943 }
944 if (!flag4 && raw.FullAppCompatMatch(raw.PositiveLocalized))
945 {
946 flag3 = true;
947 flag4 = TryTimeToTicks(flag3, raw._numbers0, raw._numbers1, raw._numbers2, timeSpanToken, raw._numbers3, out result2);
948 flag5 = flag5 || !flag4;
949 }
950 if (!flag4 && raw.FullHMSFMatch(raw.NegativeLocalized))
951 {
952 flag3 = false;
953 flag4 = TryTimeToTicks(flag3, timeSpanToken, raw._numbers0, raw._numbers1, raw._numbers2, raw._numbers3, out result2);
954 flag5 = flag5 || !flag4;
955 }
956 if (!flag4 && raw.FullDHMSMatch(raw.NegativeLocalized))
957 {
958 flag3 = false;
959 flag4 = TryTimeToTicks(flag3, raw._numbers0, raw._numbers1, raw._numbers2, raw._numbers3, timeSpanToken, out result2);
960 flag5 = flag5 || !flag4;
961 }
962 if (!flag4 && raw.FullAppCompatMatch(raw.NegativeLocalized))
963 {
964 flag3 = false;
965 flag4 = TryTimeToTicks(flag3, raw._numbers0, raw._numbers1, raw._numbers2, timeSpanToken, raw._numbers3, out result2);
966 flag5 = flag5 || !flag4;
967 }
968 }
969 if (flag4)
970 {
971 if (!flag3)
972 {
973 result2 = -result2;
974 if (result2 > 0)
975 {
976 return result.SetOverflowFailure();
977 }
978 }
979 result.parsedTimeSpan = new TimeSpan(result2);
980 return true;
981 }
982 if (!flag5)
983 {
984 return result.SetBadTimeSpanFailure();
985 }
986 return result.SetOverflowFailure();
987 }
static bool TryTimeToTicks(bool positive, TimeSpanToken days, TimeSpanToken hours, TimeSpanToken minutes, TimeSpanToken seconds, TimeSpanToken fraction, out long result)

References System.L, System.Globalization.TimeSpanFormat.NegativeInvariantFormatLiterals, System.Globalization.TimeSpanFormat.PositiveInvariantFormatLiterals, and System.Globalization.TimeSpanParse.TryTimeToTicks().

Referenced by System.Globalization.TimeSpanParse.ProcessTerminalState().