Anuario del programa
# include lttime.h gt
# include ltstdlib.h gt
//Imprime el calendario del año actual y envíalo a su El nombre del archivo en la carpeta nombrada por el número de estudiante.
¡Nombre del archivo de salida const char! \n", año, START_YEAR);
Regresar;
}
/*Comprueba el mes ingresado*/
if ( mes lt0 || mes gt12)
{
printf("¡Mes ilegal: d! ¡El mes debe estar dentro del rango!\n", año, INICIO _ AÑO); /p>
Volver;
}
/* * * * * * * * * * * * * * * * * *Iniciar impresión del calendario* * * * * * * * * * * *
/*Título del año calendario*/
printf("calendario d\n ", año);
for(inicio mes = 1; startMonthlt=12; mes de inicio = showMonthNumPerLine)
{
showMonthNumPerLine = (mes de inicio maxShowMonthNumPerLine) lt;=12 ?maxShowMonthNumPerLine: (12-mes de inicio 1);
/* 1 mes calendario primero*/
for(mes = mes de inicio; mes lt(mes de inicio showMonthNumPerLine); mes)
{
printf("-28s ",MONTH_NAME[MES-1]);
}
printf(" \ n ");
/ * El primero de la semana en el calendario de 2 años*/
for(mes = mes de inicio; mes lt(mes de inicio showMonthNumPerLine); mes)
{
for(I = 0;ilt7;i)
{
printf("s ", SEMANA _ NOMBRE _ CORTO[I]); >}
printf(" ");
}
printf(" \ n ");
//Línea de separación< /p >
for(mes = mes de inicio; mes lt(mes de inicio showMonthNumPerLine); mes)
{
for(I = 0; i lt4*7; i )
{
printf(" _ ");
}
printf(" ");
}
printf(" \ n ");
/*Inicialización de datos*/
for(mes = mes de inicio; mes lt(mes de inicio showMonthNumPerLine ); mes)
{
//El primer día del mes de la semana
primer día del mes en el día de la semana [mes de inicio del mes] = obtener el primer día del mes en el día de la semana. (año, mes );
//Días del mes
daysofmount[mes-mes de inicio]= getdaysofmount(año, mes);<
/p>
//El contador de días que se ha generado
contador de días[mes-mes de inicio]=-primer día del mes en día de la semana[mes-mes de inicio] 1;
}
/*Programar 3 calendarios todos los días*/
showMonthCounterPerLine = 0;
while(showMonthCounterPerLine lt; showMonthNumPerLine)
{ p>
for(mes = mes de inicio; mes lt(mes de inicio showMonthNumPerLine); mes)
{
for(I = 0; i lt7; i ) p>
{
if(contador de días[mes-mes de inicio] lt;= 0 | | contador de días[mes-mes de inicio] gt;El día de cada mes
{
printf("4s "," ");
}
Otros
{
printf("3d ", contador de días[mes-mes de inicio]);
}
contador de días[mes-mes de inicio];
if ( contador de días[mes-mes de inicio] gt;El día del mes
{
showmonthcounterperline;
}
}
printf(" ");
}
printf(" \ n ");
}
//Línea de separación
for(mes = mes de inicio; mes lt(mes de inicio showMonthNumPerLine); mes)
{
for(I = 0; i lt4*7; i )
{
printf(" _ ");
}
printf(" ");
}
printf(" \ n ");
}
}
int principal(int argc) , char *argv[])
{
int año, mes;
time_t t = tiempo(vacío);
struct tm*now=hora local. t);
intSelect;
/*
1
Muestra un calendario para cualquier año y mes.
Genere el almanaque del año actual en el formato de dos meses por línea.
Emite el almanaque de cualquier año en el formato de dos meses por línea.
*/
mientras(1)
{
printf("××××××××××× × ×\ n ");
Printf("1 Muestra el calendario del mes actual 1 \ n ");
Printf("2 Muestra el almanaque del año actual 2 \ n ");
Printf("3 especifica el calendario de cualquier año y mes 3 \ n ");
Printf("4 especifica el calendario de cualquier año 4 \ n "); p >
printf(" 5 salidas 5 \ n ");
printf("××××××××××××\ n "); p >scanf("d", amp select);
cambiar(seleccionar)
{
Caso 1:
printMonthCalendar( ahora - gt;tm_year 1900, ahora - gt;tm_mon 1);
Pausa;
Caso 2:
printYearCalendar(now - gt;tm_year 1900, 2);
Break;
Caso 3:
Printf("Ingrese año y mes (AAAA-MM): "); p>scanf("d-d", amp año amp mes);
printMonthCalendar(año, mes
Pausa;
Caso 4:
Printf("Año de entrada (AAAA): ");
scanf("d-d ", año amp;
printYearCalendar(año, 2); >
Break;
Caso 5:
Salir(0);
Valor predeterminado:
Printf("Error de selección , vuelva a seleccionar\n ");;
};
}
Devuelve 0;
}