Calendar: Difference between revisions
Content added Content deleted
m (→{{header|Phix}}: smaller output) |
(Added Easylang) |
||
Line 2,984: | Line 2,984: | ||
28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31 |
28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31 |
||
30</pre> |
30</pre> |
||
=={{header|EasyLang}}== |
|||
{{trans|AWK}} |
|||
<syntaxhighlight> |
|||
year = 1969 |
|||
# |
|||
wkdays$ = "Su Mo Tu We Th Fr Sa" |
|||
pagewide = 80 |
|||
blank$ = "" |
|||
month$[] = [ " January " " February " " March " " April " " May " " June " " July " " August " " September" " October " " November " " December " ] |
|||
days[] = [ 31 28 31 30 31 30 31 31 30 31 30 31 ] |
|||
# |
|||
func$ center txt$ . |
|||
h$ = substr blank$ 1 (pagewide - len txt$) / 2 |
|||
return h$ & txt$ & h$ |
|||
. |
|||
func$ makewk fst lst day . |
|||
for i to day - 1 |
|||
wstr$ &= " " |
|||
. |
|||
for i = fst to lst |
|||
i$ = i |
|||
if i <= 9 |
|||
i$ = " " & i |
|||
. |
|||
wstr$ &= i$ & " " |
|||
. |
|||
return substr wstr$ & blank$ 1 20 |
|||
. |
|||
proc dow y . newdow leap . |
|||
leap = 0 |
|||
y = (y * 365 + y div 4 - y div 100 + y div 400 + 1) mod 7 |
|||
if year mod 4 = 0 |
|||
leap = 1 |
|||
. |
|||
if year mod 100 = 0 |
|||
leap = 0 |
|||
. |
|||
if year mod 400 = 0 |
|||
leap = 1 |
|||
. |
|||
y -= leap |
|||
y = y mod1 7 |
|||
newdow = y |
|||
. |
|||
len lin$[] 8 |
|||
proc prmonth nmonth newdow monsize . . |
|||
lin$[1] &= " " & month$[nmonth] & " " |
|||
lin$[2] &= wkdays$ & " " |
|||
lin$[3] &= makewk 1 (8 - newdow) newdow & " " |
|||
for i = 4 to 7 |
|||
lin$[i] &= makewk (9 + h - newdow) lower monsize (15 + h - newdow) 1 & " " |
|||
h += 7 |
|||
. |
|||
lin$[8] &= makewk (37 - newdow) monsize 1 & " " |
|||
if len lin$[3] + 22 > pagewide |
|||
for i to 8 |
|||
print center lin$[i] |
|||
lin$[i] = "" |
|||
. |
|||
. |
|||
. |
|||
for i to pagewide |
|||
blank$ &= " " |
|||
. |
|||
dow year newdow leap |
|||
print center "[ picture of Snoopy goes here ]" |
|||
print center year |
|||
for i = 1 to 12 |
|||
monsize = days[i] |
|||
if i = 2 and leap = 1 |
|||
monsize = 29 |
|||
. |
|||
prmonth i newdow monsize |
|||
newdow = (monsize + newdow) mod1 7 |
|||
. |
|||
</syntaxhighlight> |
|||
=={{header|F Sharp|F#}}== |
=={{header|F Sharp|F#}}== |
||
<syntaxhighlight lang="fsharp">let getCalendar year = |
<syntaxhighlight lang="fsharp">let getCalendar year = |
||
Line 3,099: | Line 3,176: | ||
30 |
30 |
||
"</pre> |
"</pre> |
||
=={{header|Factor}}== |
=={{header|Factor}}== |
||
<syntaxhighlight lang="factor">USING: arrays calendar.format grouping io.streams.string kernel |
<syntaxhighlight lang="factor">USING: arrays calendar.format grouping io.streams.string kernel |