SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: maduco en Martes 30 de Noviembre de 2010, 13:00
-
ola otra vez estoy totalmente perdido y sin saber ke acer, ahora tengo ke acer un calendario con funciones y no se por donde empezar, el ejercicio es el siguiente:
ESCRIBIR UN PROGRAMA, HACIENDO USO DE FUNCIONES, QUE VISUALICE UN CALENDARIO DE LA FORMA:
L M M J V S D
1 2 3 4 5
6 7 8 ....
EL USUARIO INDICA EL MES Y EL AÑO. LA FORMULA QUE PERMITE CONOCER EL DIA DE LA SEMANA CORRESPONDIENTE A UNA FECHA ES:
MESES ENERO O FEBRERO:
n=a+31*(m-1)+d(a-1)div 4-3*((a+99)div 100) div 4;
RESTO DE MESES:
n=a+31*(m-1)+d-(4*m+23)div 10+ a div 4 - (3*(a div 100 + 1))div 4;
donde a=año;m=mes;d=dia;
NOTA: n mod 7 inidca el dia de la semana( 1=lunes,2=martes,...)
div en c es , division entera
agradezco cualquier ayuda
-
Supongo que sabrás que no se hace la tarea. Así que plantea dudas concretas.
-
no quiero que lo resuelvan sino que me den idea de como acerlo esk no tengo ni idea de por donde empezar
-
Empieza haciendo por ejemplo un programa que imprima todos los días (números) de un mes que el usuario introduce.
-
alguien tiene idea de si la formula esta bien???
tengo exo esto:
#include <stdio.h>
#include <stdlib.h>
main()
{
int a,m,d,i,n,aux,z;
printf("n PROGRAMA QUE LEE UNA FECHA Y MUESTRA EL MES DEL ANO INTRODUCIDOn");
printf("________________________________________________________________________________");
//año
printf("nIntroducir ano: ");
scanf("%d",&a);
//mes
do{
fflush(stdin);
printf("nIntroducir mes (1-12): ");
scanf("%d",&m);
}while (m<1 && m>12);
printf("nnttEL MES %d DEL %d",m,a);
//Imprimir nombre dias
printf("nn");
printf("LtMtXtJtVtStDn");
printf("--------------------------------------------------n");
//meses de 31 dias
if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
{
d=31;
}
//febrero
else if (m==2)
{
if (a%4==0)
{
if (a%100==0 && a%400!=0)
{
d=28;
}
else
{
d=29;
}
}
else
{
d=28;
}
}
//mese de 30 dias
else
{
d=30;
}
//calcular el dia de la semana
if(m==1 || m==2)
{
n=a+31*(m-1)+d*(a-1)/4-3*((a+99)/100)/4;
}
else
{
n=a+31*(m-1)+d-(4*m+23)/10+a/4-(3*(a/100+1))/4;
}
//imprimir numeros dias
aux=0;
for(i=0;i<n;i++)
{
aux++;
printf("t");
}
for(i=1;i<=d;i++)
{
aux++;
if(aux%7==0)
{
printf("%dn",i);
}
else
{
printf("%dt",i);
}
}
printf("nn");
system("pause");
}
-
La formula debe de ser del algoritmo Doomsday.
aqui hay info y explicacion:
http://es.wikipedia.org/wiki/Algoritmo_Doomsday (http://es.wikipedia.org/wiki/Algoritmo_Doomsday" onclick="window.open(this.href);return false;)