mirror of
https://github.com/vishapoberon/oberonbyexample.git
synced 2026-04-05 21:02:25 +00:00
33 lines
597 B
Text
33 lines
597 B
Text
MODULE Days;
|
|
|
|
TYPE
|
|
Day* = POINTER TO DayDesc;
|
|
DayDesc = RECORD
|
|
num: INTEGER
|
|
END;
|
|
Week* = ARRAY 7 OF Day;
|
|
VAR
|
|
sun*, mon*, tue*, wed*, thu*, fri*, sat* : Day;
|
|
week: Week;
|
|
|
|
PROCEDURE Next*(d : Day): Day;
|
|
BEGIN RETURN week[(d.num + 1) MOD 7];
|
|
END Next;
|
|
|
|
PROCEDURE Prev*(d: Day): Day;
|
|
BEGIN RETURN week[(d.num - 1) MOD 7];
|
|
END Prev;
|
|
|
|
PROCEDURE day(VAR d: Day; num: INTEGER);
|
|
BEGIN NEW(d); d.num := num; week[num] := d;
|
|
END day;
|
|
|
|
BEGIN
|
|
day(sun, 0);
|
|
day(mon, 1);
|
|
day(tue, 2);
|
|
day(wed, 3);
|
|
day(thu, 4);
|
|
day(fri, 5);
|
|
day(sat, 6);
|
|
END Days.
|