Diseño de programa de visualización de calendario en lenguaje C
#include
#include
#include
carácter * mes[]={"ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nev", "dic"};
char* semana[]={"domingo","lunes","martes","miércoles","jueves","viernes","sábado"}; p> p>
int j_leapyear(int año) //Definir función para detectar si el año de entrada es bisiesto
{
if((/*year%400 ==0*/año %4==0&&año%100!=0)||(año%400==0))
return (1);
// else if(año%4= =0&&año%100!=0)
// devuelve (1);
más devuelve 0;
}
int mes_día (int año,int mes) //Detecta cuántos días hay en el mes del año
{
int mon_day[]={31, 28,31,30,31,30,31 ,31,30,31,30,31};
if(j_leapyear(año)&&month==2)
devuelve 29 ;
else return ( mon_day[mes-1]);
}
int j_week(int año,int mes,int día) //Detecta qué día de la semana en el que es
{
int d=0,i; //d representa el número acumulado de días del año
int w ;
/* int día_mes[] ={31,28,31,30,31,30,31,31,30,31,30,31};
if( j_año bisiesto(año)==1)
día_mes[1]=29;
for(i=0;i d+= día_mes[i]; d= d+día;*/ for(i=1;i d+=día_mes( año,i); d+= día; w=(año-1)+(int)(año-1)/4-(int)(año-1) /10(int)(año-1)/40 d;//Fórmula en línea return ((int)w%7); } int allyear(int año) // Genera el calendario del año completo { int i,j,b; p rintf("\n%d calendario",año); for(i=1;i<=12;i++) { printf( "\n\n\t%s\n",mes[i-1]); // printf(" 7 1 2 3 4 5 6 \n"); printf(" S M T W T F S \n"); b=j_semana(año,i,1); for(j=1;j<=mes_día(año,i )+b;j++) { if(j<=b) printf(" "); si no (j-b<10) printf("%2d ",j-b); else printf("%2d ",j-b); //else printf("%2d ",j-b); if(j%7==0) putchar('\n'); } putchar('\n'); } devuelve 0; } void Month_print( int año, int mes) //Ingrese un año y un mes, genere el calendario de este mes { int i,c,d; c =día_mes (año,mes); printf("\n\n %d año %d mes calendario\n",año,mes); printf(" S M T W T F S \ n" ); d=j_semana(año,mes,1); for(i=1;i<=c+d;i++) { if(i<=d) printf(" "); else printf("%2d ",i-d); if(i%7==0) putchar('\n'); } putchar('\n') ; } int jisuan_day(int año,int mes,int día,int x,int y,int z) //Ingrese el año, mes y día, y genere el fecha de x año, y mes, z día Cuántos días, día de la semana y si es un feriado del calendario gregoriano { int i,a,b,c =0,d=0,días=0,m=0, n=0,t; a=año>=x?año:x; b=año< x?año:x; if( a>b) {