2 * Programa que consiste en dos funciones, la primera devuelve,
\r
3 * a partir de un mes y un a¤o v lido, el numero de dias que tiene
\r
4 * dicho mes. La segunda, a partir de un dia, un mes y un anio, da
\r
5 * el numero de dias que tiene un mes y retorna 0 si la fecha es
\r
6 * invalida. El programa en s¡, toma una fecha y devuelve el dia
\r
7 * siguiente. Si la fecha ingresada es invalida, avisa al usuario
\r
15 dia, mes, anio, dias: integer;
\r
17 FUNCTION maxDias(mes, anio: integer): integer;
\r
21 2: IF ((anio MOD 4 = 0) AND (anio MOD 100 <> 0)) OR (anio MOD 400 = 0)
\r
24 4, 6, 9, 11: maxDias := 30;
\r
29 FUNCTION maxDiasValido(dia, mes, anio: integer): integer;
\r
35 IF (anio > 2100) OR (anio < 1900)
\r
36 THEN maxDiasValido := 0
\r
37 ELSE IF (mes > 12) OR (mes < 1)
\r
38 THEN maxDiasValido := 0
\r
40 max := maxDias(mes, anio);
\r
41 IF (dia > max) OR (dia < 1)
\r
42 THEN maxDiasValido := 0
\r
43 ELSE maxDiasValido := max;
\r
48 write('Escriba el dia: ');
\r
50 write('Escriba el mes: ');
\r
52 write('Escriba el aÏo: ');
\r
54 dias := maxDiasValido(dia, mes, anio);
\r
56 THEN writeln('La fecha que ingres½ no es vÿlida. Pruebe otra vez...')
\r
67 ELSE mes := mes + 1;
\r
69 writeln('El da siguiente es el ', dia: 2, '-', mes: 2, '-', anio: 4, '.');
\r