\ Geburtstage anzeigen \ Geburtstage eintragen variable willi ," 12.05.54" ," Onkel Willi" ," Wilhelm Lange" ," Am Brotsteig 8" ," 18200 Bratstett" : daten ( anz addr --- addr ) 2 + swap begin dup 0> while 1 - swap dup c@ + 1+ swap repeat drop ; create monate 1 , 32 , 60 , 91 , 121 , 152 , 182 , 213 , 243 , 274 , 304 , 335 , : tagesnummer ( tag monat -- tagesnummer ) 1 - 2 * monate + @ + 1 - ; --> \ Geburtstage : zahlbilden ( char1 char 10 --- zahl ) 15 and 10 * swap 15 and + ; : tagesdatum ( addresse -- tagesnummer ) dup 1 + c@ swap dup 2 + c@ rot zahlbilden swap dup 4 + c@ swap 5 + c@ swap zahlbilden tagesnummer ; --> \ Geburtstage : tagesdifferenz ( adresse --- differenz ) tagesdatum date@ drop tagesnummer - ; : geburtstag ( addr -- ) cr dup 1 swap daten count type space ." noch" 0 swap daten tagesdifferenz space . ." Tage" cr ; --> : geburtstage ( --- ) willi begin dup geburtstag @ dup 0= until ; \ 26.5. 2007 Ersteingabe