Les ruego por el programa fuente en lenguaje C del calendario perpetuo~
void main()
{
Printf("Este programa encuentra el día de la semana e imprime el almanaque de este año. Si se ingresa ilegalmente, saldrá automáticamente:\n");
Printf("Ingrese el año, mes y día: ");
while(1)
{
Bucle:
//printf("Ingrese el año, mes y día:");
int o, p, q;
Qixing, Italia, México, Países Bajos, China;
scanf("ddd", ampo amp; p amp; q); //Los parámetros corresponden al año, mes y día.
If (o lt0 | | p gt12 | | p lt; 0 | | q lt0 | | q gt31) //Sentencia de entrada ilegal
{
Printf("Entrada ilegal, presione cualquier tecla para salir\n "); //Salida ilegal
Pausa;
}
y = o;
p>m = p;
d = q;
if(m==1||m==2)
m = m 12;
Si (m gt12)
y = y-1;
YY = y 100;
c =(y /100);
w = YY (YY/4) (c/4)-2 * c (26 *(m 1)/10) d-1 //Cálculo semanal
Qi Xing = w 7;
If (Qi Xing lt0)
Qi Xing = 7 Qi Xing; // Corrección semanal
If (Qi Xing lt0) Star==0) printf("Hoy es domingo\n "); //Imprime el día de la semana
If(Qixing==1) printf("Hoy es lunes \n");
If(Qixing==2) printf("Hoy es martes\n ");
If(Qixing==3) printf("Hoy es miércoles \n");
If(Qixing==4) printf("Hoy es jueves\n ");
If(Qixing==5) printf("Hoy es viernes \n") ;
If(Qixing==6) printf("Hoy es sábado\n ");
//printf("Presione cualquier tecla para continuar:\n ");
//if((n = getchar())= ' \ n ')break;
//goto loop;
// return ();
//printf(" error ");
int uu//sentencia
if((y 4 = = 0 amp; ampy100 !=0) ||y400==0) // Apagado
uu = 1; //Salto
De lo contrario//Año
uu = 0;
If(uu==1) //
Printf("d es un año bisiesto:\n ",y //Imprimir
Else); //Sí
Printf("El año d no es bisiesto\n ", y // Ninguno
//Año bisiesto
Printf( "D calendario se imprime de la siguiente manera:\n ", y);//Imprimir almanaque
int i, j, k, PP;
for(I = 1;ilt13;i )
{
si(Yo = = 1 | | | Yo = = 3 | | Yo = = 5 | | | Yo = = 7 | | | Yo = = 8 | | | | I = = 10 | | | I = = 12) //Imprimir el mes grande.
{printf("\n d mes: \n\n ",I);
printf(" Día 123456 \n ");
printf( " ");//20 espacios
PP =(YY (YY/4) (c/4)-2 * c (26 *(I 1)/10)) 7 //Cálculo uno; día del mes, 1.
if(PP lt; 0)
PP = 7 PP;
for(j = 0; j lt6 * ppJ) //1 está vacío.
printf(" ");
for(j = 1; j lt32; j )
{
printf("- 6d ", j); // - 6d alineado a la izquierda.
if((pp j)7==0)
{//Juicio de nueva línea
printf(" \ n ");
printf(" \ n ");
printf(" "); //espacio antes del salto de línea
}
}
}
if(I = = 4 | | | I = = 6 | | | I = = 9 | | | I = = 11)//Imprime el mes del medio.
{printf("\n d mes: \n\n ",I);
printf(" Día 123456 \n ");
printf( " ");
PP =(YY (YY/4) (c/4)-2 * c (26 *(I 1)/10)) 7;
si (PP lt; 0)
PP = 7 PP;
for(j = 0; j lt6 * ppj)
printf(" ");
for(j = 1; j lt31; j )
{
printf("-6d ",j);
si ((pp j)7==0)
{
printf(" \ n ");
printf(" \ n "); p> p>
printf(" ");
}
}
}
Si(i==2 ) / /Imprimir mes plano.
{printf("\n d mes: \n\n ",I);
printf(" Día 123456 \n ");
printf( " ");
PP =(YY (YY/4) (c/4)-2 * c (26 *(I 1)/10)) 7;
si (PP lt; 0)
PP = 7 PP;
for(j = 0; j lt6 * ppj)
printf(" ");
if(uu==1)
for(j = 1; j lt30; j )
{
printf("- 6d ", j);
if((pp j)7==0)
{
printf(" \ n ");
printf(" \ n ");
printf(" ");
}
}
Si ( uu==0)
for(j = 1; j lt29; j )
{
printf("-6d ",j); p> p>
if((pp j)7==0)
{
printf(" \ n ");
printf( " \ n ");
printf(" ");
}
}
}
printf( " \ n "); //Nueva línea después de imprimir cada mes.
}
printf(" \ n ");
//printf("Presione cualquier tecla para continuar: \ n ");
Printf("Ingrese el año, mes y día para continuar:");
Ir al bucle;
//system(" PUUSE ");
}
}