RosettaCodeData/Task/Chinese-zodiac/Pascal/chinese-zodiac.pas
2026-04-30 12:34:36 -04:00

21 lines
559 B
ObjectPascal

type
animalCycle = (rat, ox, tiger, rabbit, dragon, snake,
horse, goat, monkey, rooster, dog, pig);
elementCycle = (wood, fire, earth, metal, water);
aspectCycle = (yang, yin);
zodiac = record
animal: animalCycle;
element: elementCycle;
aspect: aspectCycle;
end;
function getZodiac(year: integer): zodiac;
begin
year := pred(year, 4);
getZodiac := zodiac[
animal: succ(rat, year mod 12);
element: succ(wood, year mod 10 div 2);
aspect: succ(yang, year mod 2);
]
end;