Red de conocimientos turísticos - Lugares de interés turístico - La velocidad de escribir un calendario perpetuo en lenguaje c

La velocidad de escribir un calendario perpetuo en lenguaje c

/*Calendario perpetuo programado en lenguaje C

Requiere ingresar el año y el mes para determinar si es un año bisiesto;

Ingresar el año, el mes y el día para determinar el día del semana;

Ingrese el año e imprima un calendario de 12 meses;

Ingrese el año y el mes e imprima el calendario de este mes;

Requiere múltiples funciones a implementar. */

# include & ltstdio.h & gt

# include & lttime.h & gt

# include & ltstring.h & gtint calendario【12 】【6】【7】;/*Calendario*/

char * semana【】= {"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes" ","Sábado"};

char * nombre del mes【】= {"enero", "febrero", "marzo", "abril", "mayo", "junio" ","julio" ,

"agosto","septiembre","octubre","noviembre","diciembre"};

int mes día【】= {31, 28, 31, 30 , 31, 30, 31, 30, 31, 30, 31};

char * menu【】= {/*menú de operación*/

"1. Ingrese el número del año para verificar si es un año bisiesto.\n",

"2 Ingrese el año, mes y día para verificar los días hábiles.\n",

"3. . Ingrese el año y el mes y genere el calendario del mes actual.\n",

"4. Ingrese el año y genere el calendario de todos los meses.\n",

"0. Exit,\n"

};/*Juzga si el año pasado por el parámetro año es bisiesto*/

Años que abarcan

{

Si (! (año %4) y & año %100||! (año%400)) devuelve 1

En caso contrario, devuelve 0

} /*Ingrese el año, mes y día para determinar el día de la semana y use la fórmula de Zeller w = y+[y/4]+[c/4]-2c+[26(m+1)/ 10]+D-1.

w es el resultado de la semana, y son los dos últimos dígitos del año, c son los dos primeros dígitos del año, m es el mes, 3≤m≤14, es decir, cuando

Cuando m es menor o igual a 2, se debe contar hasta 65438+3 meses y 65438+4 meses del año anterior, y finalmente W debe tomar módulo 7.

*/

Días laborables enteros (años enteros, meses enteros, días enteros)

{

int w, y, c , m, d;

c = año/100

si (mes & lt3){

m = 12+mes; p>y = año % 100-1;

}

En caso contrario{

m =mes;

y = año % 100 ;

}

d = día

w = y+y/4+c/4-2 * c+26 * (m+1) /1d-1;

return (w % 7+7) % 7;

}/*Ingrese el año y el mes e imprima el calendario de este mes*/

Anulado cada mes (año entero, mes entero)

{

int día laborable, I, j;

if (mes = = 2)

if (IsLeapyear (año)) mes día [1] + = 1

día laborable = día laborable (año, mes, 1

printf("% s\n",Monthname[mes-1]);

printf("Dom. Lunes Martes. Miércoles Jueves.

Viernes Sábado\n ");

for (I = 1, j = día laborable; i<=mesdía[mes-1]; i++, j++) {

Calendario[ Mes- 1] [j/7] [j % 7] = I

}

para(I = 0; I<6;i++){

para( j = 0; j & lt7;j++)

{

if (calendario[mes-1][I][j]== 0) printf(" % 5c", "");

else printf ("%-5d", calendario [mes-1] [I] [j]); ("\n");

}

} anular todo el mes (int año)/*Ingrese el año e imprima el calendario de 12 meses*/

{

int I;

for (I = 1; i<=12;i++){

Mensual (año, i);

getch(); /*Presione cualquier tecla para continuar*/

}

}void main (no válido)

{

int año, mes, día, I, n, día laborable;

memset (& calendario, tamaño de (calendario), 0 /*Inicializar calendario mensual*/

for(I = 0;i<5;i++)

printf("% s", menú[I]);

mientras(1) {

printf("Seleccione un menú: ");

scanf("% d", & ampn

printf("\n") ;

Cambiar (n)

Caso 1:

printf ("Ingrese el año: ");

scanf ("% d", & año) ;

if (es año bisiesto (año)) printf ("\n % d es un año bisiesto.\n", año);

else printf ("% d es no es un año bisiesto.\n", año);

Pausa;

Caso 2:

printf ("Por favor ingrese el año, mes y día: " );

scanf ("% d % d % d", & año y año. Mes y hora. Día);

printf ("\n"); p>

día laborable = día laborable (año, mes, día);

printf ("Ese día es %s\n", semana[día laborable]);

Break ;

Caso 3:

printf ("Ingrese el año y el mes, y luego genere el calendario del mes: ");

scanf ("% d % d ", & año y año. Mes);

printf ("\n");

Mensual (año, mes);

Caso 4; :

printf ("Ingrese el año, luego generará el calendario de ese año: ");

scanf ("% d", & año); >

printf("\n");

Mes completo (año);

Descanso;

Caso 0:

Regresar;

Predeterminado:

printf("El número que ingresó no es válido.\n");

Interrupción;

}

}

getch(); /*Presiona cualquier tecla para salir del programa*/

}Este programa está disponible~~Espero que pueda ayudarte ~~~