Calendar - for "REAL" programmers: Difference between revisions

m (→‎{{header|REXX}}: re-did the section header comments, change output templete, removed extra blank lines. -- ~~~~)
Line 369:
26 27 28 29 30 31 │ 23 24 25 26 27 28 29│ 28 29 30 31
│ 30 │ </lang>
 
Alternatively, we could express the entire algorithm using only uppercase letters.
 
For added "real"ness, we also only use 1 character names:
 
<lang J>B=: + 4 100 400 -/@:<.@:%~ <:
M=: 28+ 3, (10$5$3 2),~ 0 ~:/@:= 4 100 400 | ]
R=: (7 -@| B+ 0, +/\@}:@M) |."0 1 (0,#\#~41) (]&:>: *"1 >/)~ M
H=. _3(_11&{.)\'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'
H=. 'SU MO TU WE TH FR SA',:"1~H
C=: H <@,"(2) 12 6 21 }."1@($,) (' ',3 ":,.#\#~31) {~ R
D=: 0 ": <.@%&21@+&1@[ ]\ C@]
L=: |."0 1~ +/ .(*./\@:=)"1&' '
E=: (|."0 1~ _2 <.@%~ +/ .(*./\.@:=)"1&' ')@:({."1) L
F=: 0 _1 }. 0 1 }. (2+[) E '[INSERT SNOOPY HERE]', ":@], D</lang>
 
Here's an example calendar:
 
<lang> 80 F 1969
[INSERT SNOOPY HERE]
1969
┌────────────────────┬────────────────────┬────────────────────┐
│ JAN │ FEB │ MAR │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1 2 3 4│ 1│ 1│
│ 5 6 7 8 9 10 11│ 2 3 4 5 6 7 8│ 2 3 4 5 6 7 8│
│12 13 14 15 16 17 18│ 9 10 11 12 13 14 15│ 9 10 11 12 13 14 15│
│19 20 21 22 23 24 25│16 17 18 19 20 21 22│16 17 18 19 20 21 22│
│26 27 28 29 30 31 │23 24 25 26 27 28 │23 24 25 26 27 28 29│
│ │ │30 31 │
├────────────────────┼────────────────────┼────────────────────┤
│ FEB │ MAR │ APR │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1│ 1│ 1 2 3 4 5│
│ 2 3 4 5 6 7 8│ 2 3 4 5 6 7 8│ 6 7 8 9 10 11 12│
│ 9 10 11 12 13 14 15│ 9 10 11 12 13 14 15│13 14 15 16 17 18 19│
│16 17 18 19 20 21 22│16 17 18 19 20 21 22│20 21 22 23 24 25 26│
│23 24 25 26 27 28 │23 24 25 26 27 28 29│27 28 29 30 │
│ │30 31 │ │
├────────────────────┼────────────────────┼────────────────────┤
│ MAR │ APR │ MAY │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1│ 1 2 3 4 5│ 1 2 3│
│ 2 3 4 5 6 7 8│ 6 7 8 9 10 11 12│ 4 5 6 7 8 9 10│
│ 9 10 11 12 13 14 15│13 14 15 16 17 18 19│11 12 13 14 15 16 17│
│16 17 18 19 20 21 22│20 21 22 23 24 25 26│18 19 20 21 22 23 24│
│23 24 25 26 27 28 29│27 28 29 30 │25 26 27 28 29 30 31│
│30 31 │ │ │
├────────────────────┼────────────────────┼────────────────────┤
│ APR │ MAY │ JUN │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1 2 3 4 5│ 1 2 3│ 1 2 3 4 5 6 7│
│ 6 7 8 9 10 11 12│ 4 5 6 7 8 9 10│ 8 9 10 11 12 13 14│
│13 14 15 16 17 18 19│11 12 13 14 15 16 17│15 16 17 18 19 20 21│
│20 21 22 23 24 25 26│18 19 20 21 22 23 24│22 23 24 25 26 27 28│
│27 28 29 30 │25 26 27 28 29 30 31│29 30 │
│ │ │ │
├────────────────────┼────────────────────┼────────────────────┤
│ MAY │ JUN │ JUL │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1 2 3│ 1 2 3 4 5 6 7│ 1 2 3 4 5│
│ 4 5 6 7 8 9 10│ 8 9 10 11 12 13 14│ 6 7 8 9 10 11 12│
│11 12 13 14 15 16 17│15 16 17 18 19 20 21│13 14 15 16 17 18 19│
│18 19 20 21 22 23 24│22 23 24 25 26 27 28│20 21 22 23 24 25 26│
│25 26 27 28 29 30 31│29 30 │27 28 29 30 31 │
│ │ │ │
├────────────────────┼────────────────────┼────────────────────┤
│ JUN │ JUL │ AUG │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1 2 3 4 5 6 7│ 1 2 3 4 5│ 1 2│
│ 8 9 10 11 12 13 14│ 6 7 8 9 10 11 12│ 3 4 5 6 7 8 9│
│15 16 17 18 19 20 21│13 14 15 16 17 18 19│10 11 12 13 14 15 16│
│22 23 24 25 26 27 28│20 21 22 23 24 25 26│17 18 19 20 21 22 23│
│29 30 │27 28 29 30 31 │24 25 26 27 28 29 30│
│ │ │31 │
├────────────────────┼────────────────────┼────────────────────┤
│ JUL │ AUG │ SEP │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1 2 3 4 5│ 1 2│ 1 2 3 4 5 6│
│ 6 7 8 9 10 11 12│ 3 4 5 6 7 8 9│ 7 8 9 10 11 12 13│
│13 14 15 16 17 18 19│10 11 12 13 14 15 16│14 15 16 17 18 19 20│
│20 21 22 23 24 25 26│17 18 19 20 21 22 23│21 22 23 24 25 26 27│
│27 28 29 30 31 │24 25 26 27 28 29 30│28 29 30 │
│ │31 │ │
├────────────────────┼────────────────────┼────────────────────┤
│ AUG │ SEP │ OCT │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1 2│ 1 2 3 4 5 6│ 1 2 3 4│
│ 3 4 5 6 7 8 9│ 7 8 9 10 11 12 13│ 5 6 7 8 9 10 11│
│10 11 12 13 14 15 16│14 15 16 17 18 19 20│12 13 14 15 16 17 18│
│17 18 19 20 21 22 23│21 22 23 24 25 26 27│19 20 21 22 23 24 25│
│24 25 26 27 28 29 30│28 29 30 │26 27 28 29 30 31 │
│31 │ │ │
├────────────────────┼────────────────────┼────────────────────┤
│ SEP │ OCT │ NOV │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1 2 3 4 5 6│ 1 2 3 4│ 1│
│ 7 8 9 10 11 12 13│ 5 6 7 8 9 10 11│ 2 3 4 5 6 7 8│
│14 15 16 17 18 19 20│12 13 14 15 16 17 18│ 9 10 11 12 13 14 15│
│21 22 23 24 25 26 27│19 20 21 22 23 24 25│16 17 18 19 20 21 22│
│28 29 30 │26 27 28 29 30 31 │23 24 25 26 27 28 29│
│ │ │30 │
├────────────────────┼────────────────────┼────────────────────┤
│ OCT │ NOV │ DEC │
│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│SU MO TU WE TH FR SA│
│ 1 2 3 4│ 1│ 1 2 3 4 5 6│
│ 5 6 7 8 9 10 11│ 2 3 4 5 6 7 8│ 7 8 9 10 11 12 13│
│12 13 14 15 16 17 18│ 9 10 11 12 13 14 15│14 15 16 17 18 19 20│
│19 20 21 22 23 24 25│16 17 18 19 20 21 22│21 22 23 24 25 26 27│
│26 27 28 29 30 31 │23 24 25 26 27 28 29│28 29 30 31 │
│ │30 │ │
└────────────────────┴────────────────────┴────────────────────┘ </lang>
 
Note that this version will display properly in a width of 20.
 
=={{header|Perl}}==
6,951

edits