cAlmanaque

# include & ltstdio.h & gt

# 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* * * * * * * * * * * * *

/*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)

{

showMonthNumPerLine = (mes de inicio+maxShowMonthNumPerLine)<=12 ?maxShowMonthNumPerLine: (12-mes de inicio+1);

/* 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*/

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++)

{

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);

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; >}