Application module: Date time | ISO/TS 10303-1010:2014-02(E) © ISO |
(*
ISO TC184/SC4/WG12 N8379 - ISO/TS 10303-1010 Date time - EXPRESS ARM
Supersedes
ISO TC184/SC4/WG12 N7978
*)
SCHEMA Date_time_arm;
TYPE day_in_month_number =
INTEGER;
WHERE
WR1: {1 <= SELF <= 31};
END_TYPE;
TYPE hour_in_day =
INTEGER;
WHERE
WR1: { 0 <= SELF < 24 };
END_TYPE;
TYPE minute_in_hour =
INTEGER;
WHERE
WR1: { 0 <= SELF <= 59 };
END_TYPE;
TYPE month_in_year_number =
INTEGER;
WHERE
WR1: { 1 <= SELF <= 12 };
END_TYPE;
TYPE offset_orientation =
ENUMERATION
OF
(ahead,
exact,
behind);
END_TYPE;
TYPE second_in_minute =
REAL;
WHERE
WR1: { 0 <= SELF <= 60.0 };
END_TYPE;
TYPE year_number =
INTEGER;
END_TYPE;
ENTITY Calendar_date;
year_component : year_number;
month_component : month_in_year_number;
day_component : day_in_month_number;
END_ENTITY;
ENTITY Date_time;
date_component : Calendar_date;
time_component : Local_time;
END_ENTITY;
ENTITY Local_time;
hour_component : hour_in_day;
minute_component :
OPTIONAL
minute_in_hour;
second_component :
OPTIONAL
second_in_minute;
zone : Time_offset;
END_ENTITY;
ENTITY Time_offset;
hour_offset : INTEGER;
minute_offset :
OPTIONAL
INTEGER;
sense : offset_orientation;
DERIVE
actual_minute_offset : INTEGER := NVL(minute_offset,0);
WHERE
WR1: { 0 <= hour_offset < 24 };
WR2: { 0 <= actual_minute_offset <= 59 };
WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <>0)) AND (sense = exact));
END_ENTITY;
END_SCHEMA; -- Date_time_arm
© ISO 2014 — All rights reserved