public static bool isInvalidTimeOnly()

in FixAntenna/NetCore/Message/FixTypes.cs [460:534]


		public static bool isInvalidTimeOnly(byte[] buffer, int offset, int count)
		{
			try
			{
				if (count != 8 && count != 12 && count != 15 && count != 18)
				{
					return true;
				}

				if (buffer[offset + 2] != (byte)':' || buffer[offset + 5] != (byte)':')
				{
					return true;
				}

				var hour = ParseNumberPart(buffer, offset, offset + 2);
				if (hour < 0 || hour > 23)
				{
					return true;
				}

				var minute = ParseNumberPart(buffer, offset + 3, offset + 5);
				if (minute < 0 || minute > 59)
				{
					return true;
				}

				var second = ParseNumberPart(buffer, offset + 6, offset + 8);
				if (second < 0 || second > 60)
				{
					return true;
				}

				if (count >= 12)
				{
					if (buffer[offset + 8] != (byte)'.')
					{
						return true;
					}

					switch (count)
					{
						case 12:
							var millis = ParseNumberPart(buffer, offset + 9, offset + 12);
							if (millis < 0 || millis > 999)
							{
								return true;
							}

							break;
						case 15:
							var micros = ParseNumberPart(buffer, offset + 9, offset + 15);
							if (micros < 0 || micros > 999999)
							{
								return true;
							}

							break;
						case 18:
							var nanos = ParseNumberPart(buffer, offset + 9, offset + 18);
							if (nanos < 0 || nanos > 999999999)
							{
								return true;
							}

							break;
					}
				}
			}
			catch (Exception)
			{
				return true;
			}

			return false;
		}