Class DT_DATE_TIME_VALUE |

    indexing

>     description:

>         "Values dealing with year, month, day, hour, minute, second and millisecond"

>     library:    "Gobo Eiffel Time Library"
>     author:     "Eric Bezault <ericb@gobosoft.com>"
>     copyright:  "Copyright (c) 2000-2001, Eric Bezault and others"
>     license:    "Eiffel Forum License v2 (see forum.txt)"

    deferred class interface

>     DT_DATE_TIME_VALUE

    inherit

>     DT_DATE_VALUE
>     DT_TIME_VALUE

    feature -- Access

>     year: INTEGER
>             -- Year
>             -- (From DT_DATE_VALUE.)
>         deferred

>     month: INTEGER
>             -- Month
>             -- (From DT_DATE_VALUE.)
>         deferred

>     day: INTEGER
>             -- Day
>             -- (From DT_DATE_VALUE.)
>         deferred

>     hour: INTEGER
>             -- Hour
>             -- (From DT_TIME_VALUE.)
>         deferred

>     minute: INTEGER
>             -- Minute
>             -- (From DT_TIME_VALUE.)
>         deferred

>     second: INTEGER
>             -- Second
>             -- (From DT_TIME_VALUE.)
>         deferred

>     millisecond: INTEGER
>             -- Millisecond
>             -- (From DT_TIME_VALUE.)
>         deferred

>     date: DT_DATE_VALUE
>             -- Date part
>         deferred
>         ensure
>             date_not_void: Result /= Void

>     time: DT_TIME_VALUE
>             -- Time part
>         deferred
>         ensure
>             time_not_void: Result /= Void

    feature -- Output

>     out: STRING
>             -- Printable representation
>             -- (year/month/day hour:minute:second[.millisecond])
>             -- (The millisecond part appears only when not zero.)
>             -- (From GENERAL.)
>         ensure
>             out_not_void: Result /= Void

>     precise_out: STRING
>             -- Printable representation
>             -- (year/month/day hour:minute:second.millisecond)
>             -- (From DT_TIME_VALUE.)
>         ensure
>             precise_out_not_void: Result /= Void

>     date_out: STRING
>             -- Printable representation (year/month/day)
>             -- (From DT_DATE_VALUE.)
>         ensure
>             date_out_not_void: Result /= Void

>     time_out: STRING
>             -- Printable representation (hour:minute:second[.millisecond])
>             -- (The millisecond part appears only when not zero.)
>             -- (From DT_TIME_VALUE.)
>         ensure
>             time_out_not_void: Result /= Void

>     precise_time_out: STRING
>             -- Printable representation (hour:minute:second.millisecond)
>             -- (From DT_TIME_VALUE.)
>         ensure
>             precise_time_out_not_void: Result /= Void

>     append_to_string (a_string: STRING)
>             -- Append printable representation
>             -- (year/month/day hour:minute:second[.millisecond]) to a_string.
>             -- (The millisecond part appears only when not zero.)
>             -- (From DT_TIME_VALUE and DT_DATE_VALUE.)
>         require
>             a_string_not_void: a_string /= Void

>     append_date_to_string (a_string: STRING)
>             -- Append printable representation
>             -- (year/month/day) to a_string.
>             -- (From DT_DATE_VALUE.)
>         require
>             a_string_not_void: a_string /= Void

>     append_time_to_string (a_string: STRING)
>             -- Append printable representation
>             -- (hour:minute:second[.millisecond]) to a_string.
>             -- (The millisecond part appears only when not zero.)
>             -- (From DT_TIME_VALUE.)
>         require
>             a_string_not_void: a_string /= Void

>     append_precise_to_string (a_string: STRING)
>             -- Append printable representation
>             -- (year/month/day hour:minute:second.millisecond)
>             -- to a_string.
>             -- (From DT_TIME_VALUE.)
>         require
>             a_string_not_void: a_string /= Void

>     append_precise_time_to_string (a_string: STRING)
>             -- Append printable representation (hour:minute:second.millisecond)
>             -- to a_string.
>             -- (From DT_TIME_VALUE.)
>         require
>             a_string_not_void: a_string /= Void

    end -- class DT_DATE_TIME_VALUE