Código de calendario perpetuo en lenguaje C
Este programa tiene una función para consultar el día del año en el que se encuentra el día ingresado.
/* ¡Bienvenido a utilizar el sistema WanNianLi
Sun Hui!
*/
#includelt;stdio.hgt;
#includelt;stdlib.hgt;
#includelt;time.hgt ;
char* Month_str[]={"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre" , "Octubre", "Noviembre", "Diciembre"};
char* semana[]={"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes" ", "Sábado"};
int mon_day[]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //Inicializa el número de días en cada mes
int bisiesto (int año)//Juzga el año bisiesto
{
if(year4==0&year100!=0 ||año400==0)
devuelve 1;
más devuelve 0;
}
int mes_día(int año, int mes) //Juzga cuántos días hay en este mes
{
if(salto(año)amp;amp;mes ==2 )
retorno 29;
else
return(mon_day[month-1]); }
int primer día( int año, int mes, int día) // Determine el día de la semana que es el primer día de este mes
{
int c=0
float s; int m;
for(m=1;mlt;mes;m)
c=c mes_día(año,m
p>
c=c día;
s=año-1 (flotación)(año-1)/4 (flotación)(año-1)/100 (flotación)(año-1) /400-40 c;
return ((int)s7);
}
int printone(int a, int b) //Imprimir un calendario mensual
p>
{
printf(" -------------------------- -------- ----------------------------------------\n");
printf("日一二三四五六\n ");
int i, j=1, k=1;
if(a==7)
{
for(i=1;ilt;=b;i)
{
printf("4d",i);
if(i7==0)
{
printf("\n ");
}
}
}
si(a!=7)
{
while (jlt;=4*a)
{
printf(" ");
j;
}
for(i=1;ilt;=b;i)
{
printf("4d",i
if(i==7*k-a)
{
printf(" \n ");
k ; p> }
}
}
printf("\n");
devuelve 1; >}
int PrintAllYear(int año)/*Imprimir el calendario de un año*/
{
int a, b
int j=1, n=1, k;
printf("\n\n **************d calendario de pared del año**** * *********\n", año);
for(k=1;klt;=12;k)
{
j=1, n=1;
b=mes_día(año, k
a=primer día(año, k, 1); > printf("\n\n s\n", mes_str[k-1], k
printone(a, b
}
return 1;
}
char *shux(int año) //Función para calcular el signo del zodíaco
{
carácter estático *sx[]={"Zi Rat", "Chou Niu", "Yin Tiger", "Mao Rabbit", "Chen Dragon", "Si Snake", "Wuma",
"Wei "Oveja", "Shen Mono", "Tú Pollo", "Xu Perro", "Xu Perro", "Hai Cerdo"
};
return(sx[ (año- 1204)12]);
}
int tianshu(int año, int mes, int día) //Calcular el día del año para un día determinado p>
{
int i,sum=0;
for(i=1;ilt;mes;i)
suma=sum mon_day [
i-1];
suma=suma día;
if((año4==0amp;amp;año100!=0 ||año400==0)amp;amp;mesgt ;2)
sum=sum 1;
printf( "\nEl año d, mes d y día ingresados es el día d de este año\n ¿Quieres continuar? ¿Consulta? (Y/N)?", año, mes, día, suma);
return 1; }//****************** ************************************
int main()
{
int opción, da
char ch;
int año, mes, día
printf( "\ n************************************************ * *\n * Copyright @ 2005 Sun Hui ¡Todos los derechos reservados!");
printf(" *\n * *\n * Bienvenido al sistema de calendario perpetuo, ¡te deseo un buen humor! * \n *** ********************************************** ****\n" );
// Hora de llamada del sistema
time_t tval;
struct tm *now;
tval = time(NULL);
ahora = localtime(amp; tval);
printf("\n qq: 214467962\n\n Hora actual: 4d año d mes 02d día d: 02d: 02d\ n", ahora-gt; tm_año 1900, ahora-gt; tm_mon 1, ahora-gt; tm_mday, ahora-gt; tm_hora, ahora-gt; tm_min, ahora-gt; tm_sec);
//Fin de la llamada
int a, b;
b=mes_día(now-gt; tm_year 1900, now-gt; tm_mon 1); /p>
a= primer día (now-gt; tm_year 1900, now-gt; tm_mon 1, now-gt; tm_mday);
printone(a, b); calendario del mes
//*************************************** ******* **********************
>
while(1)
{
printf("\nSeleccione el servicio que necesita:\n"); nEntrada 1: Encuentra el día de la semana para una fecha determinada");
printf("\nEntrada 2: Determina si un determinado año es bisiesto");
printf ( "\nEntrada 3: Genera el calendario de un año determinado");
printf("\nEntrada 4: Determina tu signo del zodíaco"); : La fecha ingresada se puede calcular como el día del año");
printf("\nIngrese 6: Finalizar el programa\n");
scanf(" d" , amp; opción);
cambiar(opción)
{
caso 1:
while(1) p>
{
printf("\nIngrese el año, mes y día (XXXX, XX, XX) que desea consultar: ";
scanf(" d, d, d, c", año, mes, día);
da=primer día(año, mes, día);
printf(" \nd-d-d es s, do ¿Quieres continuar consultando? (Y/N)", año, mes, día, semana[da]);
fflush(stdin);
scanf("c", amp;ch);
if(ch=='N'||ch=='n')
descanso
}
break;
caso 2:
while(1)
{
printf ("\nIngrese el año ( XXXX) desea consultar");
scanf("d", amp; año);
if(salto(año))
printf( "\nd es un año bisiesto, ¿quieres continuar consultando? (S/N)", año
else
printf(" \nd No es un año bisiesto). año. ¿Aún quieres continuar con la consulta? (Y/N)?", año);
fflush(stdin);
scanf("c", amp; ch);
if( ch=='N'||ch=='n')
ruptura
}
ruptura
caso 3; :
while(1)
{
printf("\nIngrese el año calendario (XXXX) que desea imprimir");
scanf("d",&year);
PrintAllYear(year);
printf("\nD¿Quieres continuar imprimiendo el calendario (Y/N) ?"
fflush(estándar);
p> scanf("c",amp;ch);
if(ch=='N'||ch=='n')
descanso
}
romper;
caso 4:
while(1)
{
printf ("\nIngrese su año de nacimiento de cuatro dígitos:");
scanf("d", amp; año
printf("\n\nSu signo del zodíaco Sí); : s\n¿Quieres continuar consultando? (Y/N)?", shux(year));
fflush(stdin);
scanf("c" , amp ; ch);
si (ch=='N'||ch=='n')
romper
}
break;
caso 5:
while(1)
{
printf("\nPor favor, introduzca su año, mes y día a consultar (XXXX, XX, XX): ");
scanf("d, d, d", amp; año, amp; mes, amp; día);
tianshu(año, mes, día);
fflush(stdin);
scanf("c", amp; ch
); if(ch=='N'||ch=='n')
descanso;
}
caso 6:
p>fflush(stdin);
printf("¿Está realmente seguro de que desea salir de este programa? (S/N)"); " , amp; ch);
if(ch=='Y'||ch=='y')
printf("********* *** ************************************************* **** *********\n");
printf("Gracias por su uso\n Si tiene algún comentario sobre este programa, no dude en contactarnos \n");
salir(0);
romper;
predeterminado:
printf("\nError: Lo siento, esta función aún no está disponible, elija del 1 al 6\n\n\n\n\n\n");
descanso;
}
}
devuelve 0;
}