Calendar - for "REAL" programmers: Difference between revisions
Content added Content deleted
(J: remove "sneaky version" (wasn't 132 columns) and fix up text) |
(J: add some docs) |
||
Line 330: | Line 330: | ||
E=: (|."0 1~ _2 <.@%~ +/ .(*./\.@:=)"1&' ')@:({."1) L |
E=: (|."0 1~ _2 <.@%~ +/ .(*./\.@:=)"1&' ')@:({."1) L |
||
F=: 0 _1 }. 0 1 }. (2+[) E '[INSERT SNOOPY HERE]', ":@], D</lang> |
F=: 0 _1 }. 0 1 }. (2+[) E '[INSERT SNOOPY HERE]', ":@], D</lang> |
||
B: given a year returns a number where numeric values within that year, mod 7, index the proper day names within a week. |
|||
M: given a year return a list of 12 numbers representing the number of days in each month |
|||
R: given a year, return 12 rows of 42 numbers, each row representing days of the month framed in a six week period which will be used to display that month (0 for days that are not part of that month) |
|||
H: text that will be the header for each month's block of days |
|||
C: A calendar of 12 months (in a flat list, each month is structured text but there's no higher level formatting) |
|||
D: given a number of characters (at least 20) and a year, gives the calendar arranged in rows that will best fill that character width without exceeding it. |
|||
L: given a textual table (fixed with character columns), left justify it |
|||
E: given a textual table and a width, center the text within that width (assuming it fits) |
|||
F: <code>width F year</code> gives us our formatted calendar |
|||
Here's an example calendar (the first line <code>132 F 1969</code> being the command that build this calendar): |
Here's an example calendar (the first line <code>132 F 1969</code> being the command that build this calendar): |