indexing
	description: "Facility routines to check the validity of TIMEs"
	status: "See note at end of class"
	date: "$Date$"
	revision: "$Revision$"

class interface
	TIME_VALIDITY_CHECKER

feature -- Preconditions

	compact_time_valid (c_t: INTEGER): BOOLEAN
			-- Is compact time c_t valid?
		require
			c_t_not_void: c_t /= void

	is_correct_time (h, m: INTEGER; s: DOUBLE; twelve_hour_scale: BOOLEAN): BOOLEAN
			-- Is time represented by h, m, code, and s correct?
			-- twelve_hour_scale specifies if the hour range is 1 - 12
			-- (if True) or 0 - 23 (if False).

	time_valid (s: STRING; code_string: STRING): BOOLEAN
			-- Is the code_string enough precise
			-- to create an instance of type TIME?
			-- And does the string s correspond to code_string?
		require
			s_exists: s /= void
			code_exists: code_string /= void
	
invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class TIME_VALIDITY_CHECKER