cAlmanaque
# include & lttime.h & gt
# include & ltstdlib.h & gt
//Imprimir el archivo actual año calendario y envíelo a un nombre de archivo en una carpeta con el nombre de su número de estudiante.
¡Nombre del archivo de salida const char! \n", año, año_inicio);
Regresar;
}
/*Comprueba el mes ingresado*/
if ( mes<0||mes>12)
{
printf("Mes ilegal: %d! ¡El mes debe estar dentro del rango!\n", año, año_inicio );
Volver;
}
/* * * * *Iniciar impresión del calendario* * * * * * * * * * * * * p>
/*Calendario título del año*/
printf("Calendario %d\n", año);
for(mes de inicio = 1; mes de inicio< =12;mes de inicio+= showMonthNumPerLine) p>
{
showMonthNumPerLine = (mes de inicio+maxShowMonthNumPerLine)<=12 ?maxShowMonthNumPerLine: (12-mes de inicio+1); p>
/* 1 encabezado de mes calendario */
for (mes=mes de inicio; mes & lt (mes de inicio+showMonthNumPerLine); mes++)
{
printf("%-28s" ,MONTH_NAME[MES-1]);
}
printf("\n");
/*Primera semana del calendario bianual*/ p>
for (mes=mes de inicio; mes<(mes de inicio+showMonthNumPerLine); mes++)
{
for(I = 0;i<7;i++)
{
printf("% s", WEEK_NAME_SHRT[I]) ;
}
printf("");
}
printf("\n");
//Línea de separación
for (mes = mes de inicio; mes & lt (mes de inicio +showMonthNumPerLine); mes++)
{
for (I = 0;i<4*7;i++)
{
printf( "_");
}
printf("");
}
printf("\n");
/*Inicialización de datos*/
for (month=startmonth;month<(startmonth+showMonthNumPerLine);month++)
{
/ /El primer día de la semana de cada mes
primer día del mes en el día laborable【mes-mes de inicio】= getfirst day ofmonthinweekday(year,month);
//Todos los días del mes
daysofmount【mes-inicio mes】= getdaysofmount(año, mes);
//El número de contador de días que se ha generado
contador de días【 mes-mes de inicio】=-primer día del mes en el día de la semana【mes-mes de inicio】+1;
}
/*Programar 3 calendarios todos los días*/
showMonthCounterPerLine = 0;
mientras(s)
howMonthCounterPerLine & lt; showMonthNumPerLine)
{
para (mes=mes de inicio; mes & lt (mes de inicio+showMonthNumPerLine); mes++)
{ p>
for(I = 0;i<7;i++)
{
if (contador de días【mes-mes de inicio】<= 0 | | contador de días【mes -mes de inicio】& gt;El día de cada mes【mes-mes de inicio】)
{
printf ("% 4s", ""); p>}
Otros
{
printf ("% 3d", contador de días [mes-mes de inicio]); p>
}
contador de días【mes-mes de inicio】++;
if (contador de días【mes-mes de inicio】& gt; el día de cada mes【 Mes-MesInicio])
{
showMonthCounterPerLine++;
}
}
printf( "") ;
}
printf("\n");
}
//Línea de separación
for(mes=mesinicio;mes<(mesinicio+showMonthNumPerLine);mes++)
{
for(I = 0;i<4*7 ;i++)
{
printf("_");
}
printf("");
}
printf("\n");
}
}
int main(int argc, char * argv【】)
{
int año, mes
time_t t = tiempo (nulo
struct TM * ahora = hora local(&t); p>
int Choice
/*
1
Muestra un calendario para cualquier año y mes.
Imprima el calendario del año actual en el formato de dos meses por línea.
Genere un almanaque para cualquier año en el formato de dos meses por línea.
*/
mientras(1)
{
printf(“××××××××××\n ");
printf ("1 genera el calendario del mes actual 1\n");
printf ("2 genera el almanaque del año actual 2\n");
printf("3 especifica el calendario 3\n" para cualquier año y mes
printf("4 especifica el calendario 4\n" para cualquier año
<); p>printf ("5 salidas 5 \n");printf ("×××××××××\n"); ", & amp select);
Cambiar (seleccionar)
{
Caso 1:
printMonthCalendar(now->tm_year +1900 , ahora->TM_mon+1);
Descanso;
Caso 2:
Calendario de primavera (ahora->tm_year+1900 , 2
Break;
Caso 3:
Printf ("Ingrese año y mes (AAAA-MM): "); >scanf("% d-% d", & año&año.mes);
printMonthCalendar(año, mes);
descanso;
Caso 4:
Printf ("Ingrese el año (AAAA): ");
scanf ("% d-% d", & año
printYearCalendar(año); , 2);
Pausa;
Caso 5:
Salir (0);
Valor predeterminado:
Printf("Selección incorrecta, seleccione de nuevo\n");;
};
}
Devuelve 0; >}