Red de conocimientos turísticos - Lugares de interés turístico - Programación de calendario perpetuo en lenguaje C

Programación de calendario perpetuo en lenguaje C

# incluir & ltwindows.h & gt

# incluir & ltwinnt.h & gt

# incluir & ltiostream & gt

# incluir & ltiomanip & gt

Usar espacio de nombres std

intweek(int, int, int); // Determina el día de la semana según el año, mes y día.

int bisiesto _ año(int); //Determina el año bisiesto

void display _ año(int); //Muestra el calendario de un año.

void demand_day(int, int, int); //Consulta un día determinado

int main()

{

int y , m, d, es = 1;

while(es)

{

Manejar el mango de la consola;

consola hwnd = GetStdHandle(STD _ OUTPUT _ HANDLE);

SetConsoleTextAttribute(console hwnd, 12);

cout & lt& lt"Seleccione una operación:\n1→Mostrar calendario\

p>

\n2→Consultar un día determinado\n0→Salir" < & ltendl

char TP[20]; CIN & gt; & gtTP;

if(tp[ 1]! = ' \ 0 ' | | TP[0]>2 ' | | TP[0]<0 '){ cout <<"Error de entrada"

Switch (tp[0]-48)

{

Caso 1:{ cout<<"Ingrese el año:";CIN>>y;System(" cls"); display_year(y);break;}

Caso 2:{ cout & lt& ltIngrese el año, mes y día separados por espacios. cin>>y>>m>>d;system("cls");

requirement_day(y,m,d);break;}

Caso 0:{ es = 0; p>

}

}

return 0;

}

// - Determina el día de la semana según el año, mes y día.

int semana(int y, int m, int d)

{

int semana1, AA = y;

if( m = = 1){ m = 13; YY-;}

si(m = = 2){ m = 14;

semana 1 =(d+ 2; * m+3 *(m+1)/5+YY/4-YY/10YY/400)% 7;

int s

Cambiar (semana1)

{

Caso 0: s = 1; roto;

Caso 1: s = 2; = 3;

Caso 3: s = 4;

Caso 4: s = 5; ; romper;

Caso 6: s = 0; romper;

}

Devolver s;

}

// - Determinar los años bisiestos.

int año bisiesto (int y)

{

int I;

if((y % 4 = = 0 & amp ; & ampy%100! = 0)| y % 400 = = 0)I = 1;

si no I = 0;

Devolver I;

}

// - Muestra el calendario de un año determinado.

Display_year vacío (entero y)

{

int n1, n2, I, j, a[13], c, d;

p>

Identificador de la consola;

consola hwnd = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(consola hwnd, 5);

cout & lt& ltsetw(38)lt;& lty & lt& lt"Año"

cout & lt& ltsetw(28)& lt;& lt"************";

for(I = 1;i<=27;i++)cout & lt;& lt'*';

cout & lt& ltendl

a[ 1 ]= a[3]= a[5]= a[7]= a[8]= a[10]= a[12]= 31 //

a[4]= a [ 6]= a[9]= a[11]= 30; // Determinar el número de días de cada mes

if(leap _ year(y))a[2]= 29;

else a[2]= 28; //

for(I = 1;I<=11;I+=2) //Seis ciclos

{< / p>

SetConsoleTextAttribute(consola hwnd, 1);

cout & lt& ltsetw(14)& lt;& lti& lt& lt"mes"

SetConsoleTextAttribute(consola hwnd, 2 );

cout & lt& ltsetw(4)& lt;& lt"天"< & ltsetw(4)& lt;& lt"一"

& lt& lt"四"

cout & lt& ltsetw(16)& lt;& lt' ';

cout & lt& ltsetw(4)& lt;& lt"天"< & ltsetw(4 )& lt;& lt"uno"

& lt& lt"cuatro"

SetConsoleTextAttribute(console hwnd, 7);

n 1 = Semana(y , I, 1); n2 = Semana(y, i+1, 1);

if(n1) // -

{

for( j = 1;j & lt= n 1;j++) //

cout & lt& ltsetw(4)& lt;& lt' ';

}

for(j = 1;j & lt= 7-n 1;j++)

cout & lt& ltsetw(4)& lt;& ltj;

cout & lt& ltsetw (16)& lt;& lt' ';

IF(n2)

{//-Emite la primera línea de cada ciclo-

for( j = 1;j & lt= n2j++)

cout & lt& ltsetw(4)& lt;& lt' ';

}

for(j = 1; j & lt= 7-N2; j++)

cout & lt& ltsetw(4)& lt;& ltj;

cout & lt& ltendl// -

c = 8-n 1; d = 8-N2;

for(int m = 1; m & lt6;M++) //El calendario mensual puede tener hasta seis líneas.

{

if(c & gt; a[I])cout & lt; & ltsetw(4 * 7)& lt & lt' ';//si c & gtA[i], entonces esta línea del mes genera todos los espacios.

for(j = c;j & lt= a[I];j++)

{

cout & lt& ltsetw(4)& lt;& ltj;

if((j-c+1)% 7 = = 0){ c = j+1; romper;}

if(j = = a[I] ){ cout <<setw((6 semanas(y,I,a[I])* 4)<<' ';c = j+1;break;}

//Si J es el último día del mes, se completarán los espacios restantes en esta línea.

}

cout & lt& ltsetw(16)& lt & lt' ';

if(d & gt;a[I+1])cout & lt;& ltsetw(4 * 7)& lt;& lt' ';

for(j = d;j & lt= a[I+1];j++)

{ //

cout & lt& ltsetw(4)& lt;& ltj;

if((j-d+1)% 7 = = 0){ d = j+1; descanso;}

if(j = = a[I+1]){ cout & lt ;& ltsetw((6 semanas(y,i+6,a[I+1])* 4)& lt;& lt'';d = j+1;descanso;}

}

cout & lt& ltendl

}

cout & lt& ltendl

}

cout & lt& ltendl

}

// - Consultar un día determinado

Día de demanda no válido (entero y, entero m, entero d)

{

int n;

identificador de consola de consola;

consola hwnd = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute( consola hwnd, 5);

n = semana (y, m, d);

cambio (n)

{

Caso 1: cout & lt ;& lty & lt& lt"año"

Caso 2:cout & lt;& lty & lt& lt"año"

Caso 3: cout & lt& lty & lt& lt"año "

Caso 4: cout & lt;& lty & lt& lt"año"

Caso 5:cout & lt;& lty & lt& lt"año "

Caso 6: cout & lt;& lty & lt& lt"año"

Caso 0:cout & lt;& lty & lt& lt"año"

Predeterminado: descanso

}

cout & lt& ltendl

}