)†Î 100REM > "$.Basic.JaarKal" 110REM Diskette HD 310 DRIVE 0/1 120REM Created by Henri Derksen on 13-12-1984 14.00 h. 130REM programma voor het (op elke printer) printen van JaarKalenders 140REM Geschikt FilingSystem RFS, CFS, DFS, ADFS, NFS en ANFS 150REM op de Acorn BBC B, Electron, Master, Compact en Archimedes; 160REM op alle Second Processors onder BBCBasic. 170REM alsmede op andere systemen onder BBCBasic (b.v. CP/M en MS-Dos) 180REM (c) Henri Th.G. Derksen 05-10-1985 14.00 h. Versie 0,30 190REM PostBus 1006 200REM 6801 JW ARNHEM 210REM Telefoon: 085-425506 (UniCorn BBS Modem Data 8N1 All BitRates) 215REM Vrij te copieren voor niet commercieel gebruik; (NIET Hernummeren!). 220: 230*TV0,1 240DIMmaand$(12),m%(12),dag$(7),d$(119),wk$(3):p=0:nu=1994 250FORi%=1TO12:READmaand$(i%):NEXTi% 260FORi%=1TO12:READm%(i%):NEXTi% 270FORi%=1TO7:READdag$(i%):NEXTi% 280DATAJanuari,Februari,Maart,April,Mei,Juni,Juli,Augustus,September 290DATAOktober,November,December,31,28,31,30,31,30,31,31,30,31,30,31 300DATA"Maandag ","Dinsdag ","Woensdag ","Donderdag","Vrijdag " 310DATA"Zaterdag ","Zondag " 320wk$(0)="52 1 2 3 4 5 5 6 7 8 9 9 10 11 12 13" 330wk$(1)="13 14 15 16 17 17 18 19 20 21 22 22 23 24 25 26" 340wk$(2)="26 27 28 29 30 31 32 33 34 35 35 36 37 38 39" 350wk$(3)="39 40 41 42 43 44 44 45 46 47 48 48 49 50 51 52" 360: 370MODE7:REM 40 karakters per regel op het scherm 380PRINTTAB(12,5)"printen van"TAB(5,10)"J A A R K A L E N D E R S" 390PRINTTAB(5,15)"Geef het gewenste jaartal ";:INPUTj 400IFj=0j=nu:PRINTTAB(32,15);j 410IFj>1582THEN440ELSEPRINT'CHR$7"Tot 1582 gold de Juliaanse kalender." 420PRINT"Schrijf het programma daarvoor maar zelf" 430PROCw(300):GOTO370 440IFj<10000THEN470 450PRINTTAB(5,17)"Jaartallen boven 9999"TAB(5)"worden NIET verwerkt !"CHR$7 460PROCw(300):GOTO370 470PRINTTAB(5,17)"Output naar de printer J/N ";:PROCjn:p=jn 480: 490REM bereken op welke dag 1 Januari van het jaar j valt. 500j1=INT(j/100)*100:j2=j-j1:x=j2*365+INT(j2/4)+1 505IFINT(j/400)=j/400 m%(2)=29:i=x-7*INT(x/7):GOTO530:REM corr. i.v.m. 2000 510IFINT(j2/4)=j2/4 x=x-1:m%(2)=29ELSEm%(2)=28:REM schrikkeljaar ? 520i=x-7*INT(x/7):IFj2=0 m%(2)=28:i=i+1 525IFj>2000i=i+1:REM corr. i.v.m. 2000 (zie *ASTERISK* 5/6 03) 530j3=INT(j1/100):x=j3-5:y=x-7*INT(x/7):e=y*-2:d1%=i+e 540IFd1%>7 d1%=d1%-7:GOTO540:ELSEIFd1%<1 d1%=d1%+7:GOTO540 550REM d1% is de dag waarop 1 Januari van het jaar j valt. 560: 570MODE3:REM 80 karakters per regel op het scherm 580IFp=1 VDU2:REM printer aan 590REM IFj=nu VDU1,27,1,66,1,4:REM NLQ on 600PRINTTAB(32);j' 610i%=1:REPEAT:FORd%=1TO119:d$(d%)=" ":NEXTd% 620IFd1%>7 d1%=d1%-7:GOTO620:ELSEIFd1%<1 d1%=d1%+7:GOTO620 630d$(d1%)="1 ":REM 1e dag van de maand 640L%=1:q%=m%(i%):PROCreken:d$(m%(i%)+L%+6)="1 " 650L%=36:q%=m%(i%+1):PROCreken:d$(m%(i%+1)+L%+6)="1 " 660L%=70:q%=m%(i%+2):PROCreken 670FORz%=1TO105:IFLEN(d$(z%))<3 d$(z%)=" "+d$(z%) 680NEXTz% 690PRINTTAB(15)maand$(i%);TAB(30)maand$(i%+1);TAB(46)maand$(i%+2) 700IFj=nu PRINT'"Week nr. ";wk$(INT(i%/3)) 710PRINT:FORj%=1TO7:PRINTdag$(j%);:PRINT" "; 720FORn%=0TO16:PRINTd$(j%+(7*n%)); 730IFn%>12 IFd$(j%+(7*n%))=STR$(m%(i%+2))+" " d1%=j%+1 740NEXTn%:PRINTTAB(63)dag$(j%):NEXTj%:PRINT'' 750i%=i%+3:UNTILi%>12:d1%=i+e 760PRINTTAB(12)"De beste wensen voor ";j;" van Henri Derksen"'' 770VDU3:REM printer uit 780PRINT"Nog een jaarkalender van het zelfde jaartal printen J/N ";:PROCjn 790IFjn=1PRINT'TAB(6)"Output naar de printer J/N ";:PROCjn:p=jn:GOTO570 800PRINT'TAB(6)"Een jaarkalender van een ander jaartal printen J/N ";:PROCjn 810IFjn=1THEN370 820MODE7:PRINTTAB(5,10)"Dank u en tot de volgende keer" 830PRINTTAB(15,15)CHR$136"E I N D E"CHR$7:PROCw(300):CLS 840END 850: 860DEFPROCreken 870REPEATm%=VALd$(L%):L%=L%+1:UNTILm%=1 880FORk%=L%TOq%+L%-2:d$(k%)=STR$(k%-L%+2)+" " 890IFk%-L%+2>q%+1 d$(k%-L%+2)=" " 900NEXTk% 910ENDPROC 920: 930DEFPROCjn 940*FX21,0 950REPEATa=INSTR("YyJjNn",GET$):UNTILa 960IFa<5 PRINT"Ja":jn=1:ELSEPRINT"Nee":jn=0 970PROCw(50) 980ENDPROC 990: 1000DEFPROCw(w):w=TIME+w:REPEATUNTILw