Chinese zodiac: Difference between revisions

Content added Content deleted
(Added 11l)
(Added Algol 68)
Line 268: Line 268:
1985 is the year of Wood Ox (yin). 乙丑
1985 is the year of Wood Ox (yin). 乙丑
2017 is the year of Fire Rooster (yin). 丁酉
2017 is the year of Fire Rooster (yin). 丁酉
</pre>

=={{header|ALGOL 68}}==
{{Trans|AWK}}
<lang algol68>BEGIN # Chinese Zodiac #
# returns s right-padded with blanks to w characters, or s if s is already at least w characters long #
PRIO PAD = 1;
OP PAD = ( STRING s, INT w )STRING:
BEGIN
STRING result := s;
WHILE ( ( UPB result + 1 ) - LWB s ) < w DO result +:= " " OD;
result
END # PAD # ;
[]STRING animal name = ( "Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake"
, "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"
);
[]STRING element name = ( "Wood", "Fire", "Earth", "Metal", "Water" );
[]INT test year = ( 1935, 1938, 1968, 1972, 1976, 1984, 1985, 2017 );
print( ( "year element animal aspect", newline ) );
FOR i FROM LWB test year TO UPB test year DO
INT year = test year[ i ];
STRING element = element name[ ( ( year - 4 ) MOD 10 OVER 2 ) + 1 ];
STRING animal = animal name[ ( year - 4 ) MOD 12 + 1 ];
STRING yy = IF ODD year THEN "Yin" ELSE "Yang" FI;
print( ( whole( year, -4 ), " ", element PAD 7, " ", animal PAD 7, " ", yy, newline ) )
OD
END</lang>
{{out}}
<pre>
year element animal aspect
1935 Wood Pig Yin
1938 Earth Tiger Yang
1968 Earth Monkey Yang
1972 Water Rat Yang
1976 Fire Dragon Yang
1984 Wood Rat Yang
1985 Wood Ox Yin
2017 Fire Rooster Yin
</pre>
</pre>