Calendar - for "REAL" programmers: Difference between revisions

(Added a C versoin)
Line 2,347:
<lang M2000 Interpreter>
 
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) {
Line 2,365 ⟶ 2,417:
}
LOCALE LOCALEID
IF NOT PRINT_IT THEN CURSOR 0,HEIGHT-1 ' LAST LINE, SO EACH NEW LINE SCROLL ALL LINES UP
PRINT OVER $(2),"[SNOOPY]"
PRINT UNDER ' PRINT UNDERLINE
PRINT OVER $(2), YEAR
Line 2,373 ⟶ 2,426:
PRINT
FOR I=1 TO 6 {
MONTH=I+J*6
PRINT PART @((I-1)*22), $(2,21), UCASE$(LOCALE$(55+MONTH))
}
Line 2,412 ⟶ 2,465:
}
}
WHILE INKEY$<>"" : END WHILE
FORM 132,43
IF PRINT_IT THEN PRINTING ON
CALENDAR 1969, 1033 ' ENGLISH
FONT "COURIER NEW"
K=KEY$ ' WAIT KEY
PEN 0
CALENDAR 2018, 1032 ' GREEK
CLS 15, 0
FORM 132,4368
CALENDAR 20181966, 1032 ' GREEK
GOSUB WAITKEY_OR_MOUSE
FOR I=2019 TO 2025
CALENDAR 1969I, 1033 ' ENGLISH
GOSUB WAITKEY_OR_MOUSE
NEXT I
IF PRINT_IT THEN PRINTING OFF
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>
404

edits