public static bool IsInvalidTime()

in FixAntenna/NetCore/Message/FixTypes.cs [1303:1362]


		public static bool IsInvalidTime(byte[] buffer, int offset, int count)
		{
			try
			{
				if (count != 17)
				{
					return true;
				}

				if (buffer[offset + 8] != (byte)'-' || buffer[offset + 11] != (byte)':' ||
					buffer[offset + 14] != (byte)':')
				{
					return true;
				}

				var year = ParseNumberPart(buffer, offset, offset + 4);
				if (year < 1583)
				{
					return true;
				}

				var month = ParseNumberPart(buffer, offset + 4, offset + 6) - 1;
				if (month < 0 || month > 11)
				{
					return true;
				}

				var date = ParseNumberPart(buffer, offset + 6, offset + 8);
				if (date < 1 || date > (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)
					? LeapMonthLength[month]
					: MonthLength[month]))
				{
					return true;
				}

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

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

				var second = ParseNumberPart(buffer, offset + 15, offset + 17);
				if (second < 0 || second > 60)
				{
					return true;
				}
			}
			catch (Exception)
			{
				return true;
			}

			return false;
		}