indexing
	description: "Functions useful in time calculations"
	status: "See notice at end of class"
	date: "$Date$"
	revision: "$Revision$"

class interface
	TIME_UTILITY

feature -- Access

	date_time_tools: DATE_TIME_TOOLS
			-- Tools for outputting dates and times in different formats

	default_format_string: STRING
			-- Default output format string
	
feature -- Basic operations

	div (i, j: INTEGER): INTEGER
			-- (i \\ j) if i positive
			-- (i \\ j + 1) if i negative
		ensure
			result_definition: i = j * Result + mod (i, j)

	mod (i, j: INTEGER): INTEGER
			-- (i \\ j) if i positive
			-- (i \\ j + j) if i negative
		ensure
			positive_result: Result >= 0
			result_definition: i = j * div (i, j) + Result
	
invariant

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

end -- class TIME_UTILITY