Programación General > Delphi
Dia De La Semana
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 >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 >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 <> 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 >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 >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 <> 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
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa