Programación General > Delphi

 Dia De La Semana

<< < (2/3) > >>

novato_1337:

--- Citar ---14/01/06-------05/01/06
--- Fin de la cita ---

la forma de ingresar el dia incial es solamente que dia de la semana era cuando empezo el año ej: lunes,martes,miercoles,etc

en este caso tendrias que ingresar la fecha 14/01/06 y Domingo y con estos datos calcular el dia de la semana del 14/01/06 esto es lo que no logro realizar.


--- Citar ---if Dias mod 7 = 0 then Dia:=Domingo;
--- Fin de la cita ---

 ¿si hago mod 7 el total de dias pasados me tendria que dar el dia que es?, pero creo que tendria que asignar un numero a cada dia de la semana y sumarselo al total de dias de la fecha ingresada antes de hacer mod 7. :S

novato_1337:

--- Código: Text ---const  enero=31;  marzo=31;abril=30;mayo=31;junio=30;  julio=31; agosto=31; septiembre=30;  octubre=31;noviembre=30;diciembre=31;vardia,mes,anio,b, febrero,dias,resto,inicio:integer;begin  b:=1;  clrscr;  writeln('Ingrese Fecha DD-MM-AAAA');  repeat  Writeln('Ingrese dias DD');  readln(dia);  if dia &#62;31 then  begin  writeln('error los dias no pueden ser mas de 31');  b:=0;  end  else  b:=1;  until b=1;  repeat  writeln('Ingrese Mes MM');  readln(mes);  if mes &#62;12 then  begin  writeln ('Error no existen mas de 12 meses');  b:=0;  end  else  b:=1;  until b=1;  writeln('Ingrese Anio AAAA');  readln(anio);   clrscr;  Writeln('Ingrese dia de la semana que fue el primero de enero del anio Lunes:1,Martes:2,Miercoles:3,Jueves:4,Viernes:5,Sabado:6,Domingo:7');  readln(inicio);   if (anio mod 100=0) and (anio mod 400 &#60;&#62; 0) then  febrero:=28;  if (anio mod 4) =0 then  febrero:=29  else  begin  febrero:=28;  end;  if mes =12 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+agosto+septiembre+octubre+noviembre+dia;  if mes =11 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+agosto+septiembre+octubre+dia;  if mes=10 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+agosto+septiembre+dia;  if mes=09 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+agosto+dia;  if mes=08 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+dia;  if mes=07 then  dias:=enero+febrero+marzo+abril+mayo+junio+dia;  if mes=06 then  dias:=enero+febrero+marzo+abril+mayo+dia;  if mes=05 then  dias:=enero+febrero+marzo+abril+dia;  if mes=04 then  dias:=enero+febrero+marzo+dia;  if mes=03 then  dias:=enero+febrero+dia;  if mes=02 then  dias:=enero+dia;  if mes=01 then  dias:=dia;    resto:=(dias)mod 7;   if resto  = 0 then  writeln('dia es Sabadoo');  if resto=1 then  writeln('dia es Domingo');  if resto=2 then  writeln('dia es Lunes');  if resto=3 then  writeln('dia es Martes');  if resto=4 then  writeln('dia es Miercoles');  if resto=5 then  writeln('dia es Viernes');   readln; 
Esto es lo que programe yo solo el final donde dice que dia es si funciona pero lo hice probando diferentes combinaciones de resultados no con mucha seguridad es lo unico que me quedo duda.

novato_1337:
:( aun no corre el codigo anterior tiene errores tendre que revisarlo :(

novato_1337:

--- Código: Text ---uses  SysUtils,  crt32; const  enero=31;  marzo=31;abril=30;mayo=31;junio=30;  julio=31; agosto=31; septiembre=30;  octubre=31;noviembre=30;diciembre=31;vardia,mes,anio,b,febrero,dias,resto,inicio:integer;begin  febrero:=0;  b:=1;  clrscr;  writeln('Ingrese Fecha DD-MM-AAAA');  repeat  Writeln('Ingrese dias DD');  readln(dia);  if dia &#62;31 then  begin  writeln('error los dias no pueden ser mas de 31');  b:=0;  end  else  b:=1;  until b=1;  repeat  writeln('Ingrese Mes MM');  readln(mes);  if mes &#62;12 then  begin  writeln ('Error no existen mas de 12 meses');  b:=0;  end  else  b:=1;  until b=1;  writeln('Ingrese Anio AAAA');  readln(anio);   clrscr;  Writeln('  Ingrese dia de la semana que fue el primero de enero del anio');  Writeln(' Lunes:1,Martes:2,Miercoles:3,Jueves:4,Viernes:5,Sabado:6,Domingo:7 ');  readln(inicio);   if (anio mod 100=0) and (anio mod 400 &#60;&#62; 0) then  febrero:=28;  if (anio mod 4) =0 then  begin  febrero:=29;  end  else  begin  febrero:=28;  end;  if mes =12 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+agosto+septiembre+octubre+noviembre+dia;  if mes =11 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+agosto+septiembre+octubre+dia;  if mes=10 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+agosto+septiembre+dia;  if mes=09 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+agosto+dia;  if mes=08 then  dias:=enero+febrero+marzo+abril+mayo+junio+julio+dia;  if mes=07 then  dias:=enero+febrero+marzo+abril+mayo+junio+dia;  if mes=06 then  dias:=enero+febrero+marzo+abril+mayo+dia;  if mes=05 then  dias:=enero+febrero+marzo+abril+dia;  if mes=04 then  dias:=enero+febrero+marzo+dia;  if mes=03 then  dias:=enero+febrero+dia;  if mes=02 then  dias:=enero+dia;  if mes=01 then  dias:=dia;    resto:=(dias+inicio)mod 7;   if resto  = 0 then  writeln(dia,'/', mes,'/',anio ,'El dia es Sabado');  if resto=1 then  writeln(dia,'/', mes,'/',anio ,'El dia es Domingo');  if resto=2 then  writeln(dia,'/', mes,'/',anio ,'El dia es Lunes');  if resto=3 then  writeln(dia,'/', mes,'/',anio,' El dia es Martes');  if resto=4 then  writeln(dia,'/', mes,'/',anio ,'El dia es Miercoles');  if resto=5 then  writeln(dia,'/', mes,'/',anio ,'El dia es Viernes');   readln;   end. Asi es como me quedo mi porgrama ya terminado si tienes algun comentario o sugerencia bienvenido gracias por todo

:hola:

Enko:
VAMOS DE VUELTA

--- Citar ---14/01/06 y Domingo

--- Fin de la cita ---
Domingo quiere decir que el 1ro de Enero Fue Domingo NO?

Entonces, han pasado 14 días despues del 1ro de Enero.
Cada 7 dias se repite el día.
Eso quiera decir que el 14 mod 7 = 0,
(0-1)  sería Un día menso que domingo, Sabado

Vamso a algo más complicado,

--- Citar ---15/02/06 Lunes

--- Fin de la cita ---
Quiere decir que el 1ro de Enero fue Lunes  y que la fecha es 15/02
Enero tiene 31, días.
31 + 15 = 46.
Eso quiere dicir que pasaron 46 días despues del 1ro de enero que fue un Lunes
46 mod 7 = 4.
(4 - 1 ) = 3 días pasaron despues del lunes. Seria Jueves

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa