Muestra un calendario con el mes indicado

Program calendario;
uses
    crt;
var
   a: word;
   m: byte;
procedure cal(m:byte; a:word);
var
   d,k,df : byte;
   n      : integer;
begin
     case m of
       1: df := 31;
       2: if (a mod 4 = 0) and (a mod 100 <> 0) or (a mod 400 = 0) then
              df := 29
          else
              df := 28;
       3: df := 31;
       4: df := 30;
       5: df := 31;
       6: df := 30;
       7: df := 31;
       8: df := 31;
       9: df := 30;
       10:df := 31;
       11:df := 30;
       12:df := 31
     end;
     d:=1;
     if m<3 then
        n:= a + 31 * (m - 1) + d * (a - 1) div 4 - 3 * ((a + 99) div 100) div 4
     else
        n:= a + 31 * (m - 1) + d - 4 * (m + 23) div 10 + a div 4 - (3 * (a div 100 + 1)) div 4 - 1;
     n:= n mod 7;
     clrscr;
     gotoxy(18,3);
     writeln('D  L  M  M  J  V  S');
     k:=5;
     repeat
           gotoxy(19+3*(n-1),k);
           write(d:3);
           n:=(n+1) mod 7;
           if n = 0 then inc(k);
           inc(d)
     until d>df;
     readln
end;
 
begin
     clrscr;
     write('Fecha(mm aaaa):');
     readln(m,a);
     cal(m,a)
end.

¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.

Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C [c]Código en C[/c]
  • Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].

De esta manera el código coloreas el código.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:

Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.

¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)