Pascal/Turbo Pascal - Obtener el dia siguiente a una fecha

   
Vista:

Obtener el dia siguiente a una fecha

Publicado por DaniGonzalez (2 intervenciones) el 15/11/2011 23:55:18
Necesito realizar un programa en pascal en el q el usuario introduzca una fecha en Dia/Mes/Año y se diga cual es el dia siguiente y el dia anterior. teniendo en cuenta si el año es bisiesto y cuando es 31 de diciembre o 1ro de enero.!!!
Nota: No debo usar funciones. =/
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Obtener el dia siguiente a una fecha

Publicado por ramon (2072 intervenciones) el 16/11/2011 22:41:41
A ver los meses son 1,3,5,7,8,10,12 de 31 días
los meses 4,6,9,11 de 30 días
el mes 2 es de 28 o 29 días según [md mod 4 = 0 serán 29 sino 28]

ahora en pascal tienes una funtion getdate(año,mes,dia,diasemana) y otra que es
setdata(año,mes,dia);

esto te permite tomar cualquier valor 1899 a 2099 para año 1 a 12 para mes y 1 a 31/30/28/29 para
dia.

el programa quedaría algo asín:

var
año, mes, dia, diasem : word;
año1, mes1, dia1 : word;


begin
getdate(año,mes,dia,diasem);
año1 := año;
mes1 := mes; {Esto para dejarlo como estaba la fecha del ordenador}
dia1 := dia;
{aquí entramos la nueva fecha}
setdate(año,mes,dia);
getdate(año,mes,dia,diasem);
writeln('Fecha Cambiada',dia,'/',mes,'/',año);
{aquí revisamos las fechas anteriores y posteriores dependiendo de lo antes}
{comentado de los días del mes}
readln;
setdate(año1,mes1,dia1);
end.

{Espero esto te sirva}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener el dia siguiente a una fecha

Publicado por DaniGonzalez (2 intervenciones) el 17/11/2011 15:27:13
Gracias por tu ayuda.. =D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener el dia siguiente a una fecha

Publicado por ramon (2072 intervenciones) el 17/11/2011 16:08:39
{Muestra de lo anterior por si}

program calendar;
uses
crt, dos;
var
dias, ayo, mes, dia, diasem, ayo1, mes1, dia1 : Word;
err, nd, ul, i, x, y : integer;
mes2, dias2, dias3, mes3 : word;
fecha : string[10];
cadia, cames : string[2];
caayo : string[4];

begin
clrscr;
GetDate(ayo,mes,dia,diasem);
ayo1 := ayo;
mes1 := mes;
dia1 := dia;
gotoxy(10,2);write('La Fecha Actual Es : ',dia,'/',mes,'/',ayo);
gotoxy(10,4);write('Entre Nueva Fecha : ');
gotoxy(30,4);readln(fecha);
cadia := copy(fecha,1,2);
cames := copy(fecha,4,2);
caayo := copy(fecha,7,4);
val(cadia,dia,err);
val(cames,mes,err);
val(caayo,ayo,err);
writeln('La Fecha Nueva Es : ',dia,'/',mes,'/',ayo);
if dia > 1 then
writeln('La Fecha Anterior Seria :',dia - 1,'/',mes,'/',ayo)
else
begin
mes2 := mes;
mes2 := mes2 - 1;
case mes2 of
1,3,5,7,8,10,12 : dias2 := 31;
2 : if mes2 mod 4 = 0 then
dias2 := 29
else
dias2 := 28;
4,6,9,11 : dias2 := 30;
end;
writeln('La Fecha Anterior Seria : ',dias2,'/',mes2,'/',ayo)
end;
mes3 := mes;
case mes3 of
1,3,5,7,8,10,12 : dias3 := 31;
2 : if mes3 mod 4 = 0 then
dias3 := 29
else
dias3 := 28;
4,6,9,11 : dias3 := 30;
end;
if dia < dias3 then
writeln('La Fecha Posterior Seria : ',dia + 1,'/',mes,'/',ayo)
else
begin
writeln('La Fecha Posterior Seria : ',1,'/',mes + 1,'/',ayo)
end;
readln;
setdate(ayo1,mes1,dia1);
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar