Calendar: Difference between revisions
Content added Content deleted
m (→{{header|WYLBUR}}: cosmetic change) |
|||
Line 4,279: | Line 4,279: | ||
For i=1 to 3 { |
For i=1 to 3 { |
||
Month=i+j*3 |
Month=i+j*3 |
||
Print Part @((i-1)*29), $(2,22), Title$(Ucase$(locale$(55+Month))) |
Print Part @((i-1)*29-1), $(2,22), Title$(Ucase$(locale$(55+Month))) |
||
} |
} |
||
Print |
Print |
||
Line 4,321: | Line 4,321: | ||
k=Key$ ' wait key |
k=Key$ ' wait key |
||
Calendar 2018, 1032 ' Greek |
Calendar 2018, 1032 ' Greek |
||
</lang> |
|||
Second Example, using 132 characters per line |
|||
\\ Calendar - for "REAL" programmers |
|||
\\ All statements in UPPERCASE |
|||
\\ Output to 132 characters console - as a line printer |
|||
\\ USE COURIER NEW (FONT "COURIER NEW") |
|||
\\ CHANGE THE |
|||
GLOBAL CONST PRINT_IT AS BOOLEAN=FALSE |
|||
MODULE GLOBAL SNOOPY { |
|||
IF NOT PRINT_IT THEN CURSOR 0,ROW ELSE IF ROW>0 THEN PAGE 1 |
|||
PRINT $(,8) |
|||
PRINT #-2, { |
|||
XXXX |
|||
X XX |
|||
X *** X XXXXX |
|||
X ***** X XXX XX |
|||
XXXX ******* XXX XXXX XX |
|||
XX X ****** XXXXXXXXX El@ XX XXX |
|||
XX X **** X X** X |
|||
X XX XX X X***X |
|||
X //XXXX X XXXX |
|||
X // X XX |
|||
X // X XXXXXXXXXXXXXXXXXX/ |
|||
X XXX// X X |
|||
X X X X X |
|||
X X X X X |
|||
X X X X X XX |
|||
X X X X X XXX XX |
|||
X XXX X X X X X X |
|||
X X X XX X XXXX |
|||
X X XXXXXXXX\ XX XX X |
|||
XX XX X X @X XX |
|||
XX XXXX XXXXXX/ X XXXX |
|||
XXX XX*** X X |
|||
XXXXXXXXXXXXX * * X X |
|||
*---* X X X |
|||
*-* * XXX X X |
|||
*- * XXX X |
|||
*- *X XXX |
|||
*- *X X XXX |
|||
*- *X X XX |
|||
*- *XX X X |
|||
* *X* X X X |
|||
* *X * X X X |
|||
* * X** X XXXX X |
|||
* * X** XX X X |
|||
* ** X** X XX X |
|||
* ** X* XXX X X |
|||
* ** XX XXXX XXX |
|||
* * * XXXX X X |
|||
* * * X X X |
|||
=======******* * * X X XXXXXXXX\ |
|||
* * * /XXXXX XXXXXXXX\ ) |
|||
=====********** * X ) \ ) |
|||
====* * X \ \ )XXXXX |
|||
=========********** XXXXXXXXXXXXXXXXXXXXXX |
|||
} |
|||
} |
|||
MODULE CALENDAR (YEAR, LOCALEID) { |
|||
FUNCTION GETMAX(YEAR, MONTH) { |
|||
A=DATE(STR$(YEAR)+"-"+STR$(MONTH)+"-1") |
|||
MAX=32 |
|||
DO { |
|||
MAX-- |
|||
M=VAL(STR$(CDATE(A,0,0,MAX), "M")) |
|||
} UNTIL M=MONTH |
|||
=MAX+1 |
|||
} |
|||
FUNCTION SKIPMO(YEAR, MONTH) { |
|||
A=DATE(STR$(YEAR)+"-"+STR$(MONTH)+"-1") |
|||
=(VAL(STR$(A, "W"))-8) MOD 7 +7 |
|||
} |
|||
FUNCTION TITLE$(A$) { |
|||
=UCASE$(LEFT$(A$,1))+LCASE$(MID$(A$, 2)) |
|||
} |
|||
LOCALE LOCALEID |
|||
IF NOT PRINT_IT THEN CURSOR 0,HEIGHT-1 ' LAST LINE, SO EACH NEW LINE SCROLL ALL LINES UP |
|||
SNOOPY |
|||
PRINT UNDER ' PRINT UNDERLINE |
|||
PRINT OVER $(2), YEAR |
|||
PRINT |
|||
FOR J=0 TO 1 { |
|||
PRINT |
|||
FOR I=1 TO 6 { |
|||
MONTH=I+J*6 |
|||
PRINT PART @((I-1)*22+1), $(2,21), UCASE$(LOCALE$(55+MONTH)) |
|||
} |
|||
PRINT |
|||
DIM SKIP(1 TO 6), COUNT(1 TO 6), D(1 TO 6)=1 |
|||
FOR I=1 TO 6 { |
|||
MONTH=I+J*6 |
|||
IF I>1 THEN PRINT " "; |
|||
FOR K=42 TO 48 :PRINT " ";UCASE$(LEFT$(LOCALE$(K),2));:NEXT K |
|||
SKIP(I)=SKIPMO(YEAR, MONTH) |
|||
COUNT(I)=GETMAX(YEAR, MONTH) |
|||
} |
|||
PRINT |
|||
IF PRINT_IT ELSE REFRESH 1000 |
|||
FOR I=1 TO 6 { |
|||
IF I>1 THEN PRINT " "; |
|||
FOR K=1 TO 7 { |
|||
SKIP(I)-- |
|||
IF SKIP(I)>0 THEN PRINT " "; :CONTINUE |
|||
COUNT(I)-- |
|||
PRINT FORMAT$(" {0::-2}", D(I)); |
|||
D(I)++ |
|||
} |
|||
} |
|||
PRINT |
|||
IF PRINT_IT ELSE REFRESH 1000 |
|||
PRINT @(0) |
|||
FOR M=1 TO 5 { |
|||
FOR I=1 TO 6 { |
|||
IF I>1 THEN PRINT " "; |
|||
FOR K=1 TO 7 { |
|||
COUNT(I)-- |
|||
IF COUNT(I)<0 THEN PRINT " "; : CONTINUE |
|||
PRINT FORMAT$(" {0::-2}", D(I)); |
|||
D(I)++ |
|||
} |
|||
} |
|||
PRINT |
|||
IF PRINT_IT ELSE REFRESH 1000 |
|||
} |
|||
} |
|||
} |
|||
WHILE INKEY$<>"" : END WHILE |
|||
IF PRINT_IT THEN PRINTING ON ELSE REFRESH 1000 |
|||
FONT "COURIER NEW" |
|||
PEN 0 |
|||
CLS 15, 0 |
|||
FORM 132,68 |
|||
CALENDAR 1966, 1032 ' GREEK |
|||
GOSUB WAITKEY_OR_MOUSE |
|||
FOR I=2020 TO 2026 |
|||
CALENDAR I, 1033 ' ENGLISH |
|||
GOSUB WAITKEY_OR_MOUSE |
|||
NEXT I |
|||
IF PRINT_IT THEN PRINTING OFF ELSE REFRESH 50 |
|||
CLEAR ' CLEAR VARIABLES FROM THIS MODULE |
|||
KEYBOARD "INFO"+CHR$(13) |
|||
END |
|||
WAITKEY_OR_MOUSE: |
|||
IF PRINT_IT THEN RETURN |
|||
WHILE INKEY$="" AND MOUSE=0 |
|||
END WHILE |
|||
RETURN |
|||
<lang M2000 Interpreter> |
|||
</lang> |
</lang> |
||