- 170 LET J$=RIGHT$(G$,4)
- 180 LET M$=MID$(G$,4,2)
- 190 LET T$=LEFT$(G$,2)
- 200 INPUT "Aktuelles Datum (TT.MM.JJJJ)";D$
- 210 LET JJ$=RIGHT$(D$,4)
- 220 LET MM$=MID$(D$,4,2)
- 230 LET TT$=LEFT$(D$,2)
- 240 LET ALTER=INT((VAL(JJ$+MM$+TT$)-VAL(J$+M$+T$))/10000)
- 250 PRINT "Das Alter ist: "; ALTER
1. LET kannst du weglassen, das wird beim C64-Basic nicht benötigt (stört aber auch nicht sonderlich)
2. Die Berechnung von J$, M$ und T$ ist korrekt. Ich würde diese Werte aber gleich in Zahlen umrechnen, also 170 J=VAL(RIGHT$(G$,4)), damit kann man besser rechnen. (Aber dann musst du auch Zeile 240 entsprechend anpassen. Ich gehe im weiteren davon aus, dass du J$ und so weiter verwendest.)
3. In Zeile 200 fragst du D$ noch ein zweites mal ab, das hattest du weiter oben in Zeile 131 schon.
4. Der eigentliche Fehler ist in Zeile 240. Da machst du so, als hätte jeder Monat 100 Tage und jedes Jahr 100 Monate. Das ist aber leider nicht so, sondern deutlich komplizierter, vor allem, wenn man auch noch Schaltjahre berücksichtigen will. Was du machen könntest, wäre aber, einfach nur die Differenz der Jahre zu berechnen. Also ALTER=INT(JJ$)-INT(J$):PRINT "Du bist ungefähr ";ALTER