Red de conocimiento informático - Conocimiento de la instalación - Buscando el código fuente VC6.0 del calendario perpetuo. Por favor dame orientación

Buscando el código fuente VC6.0 del calendario perpetuo. Por favor dame orientación

#include

int día,año,mes;

int isLeap()

{int isleap;

if(((año%4==0)&&!(año%100==0))||(año%400==0)))isleap=1;

else isleap=0;

return isleap;}

int lastdayofmonth()

{int lastday, isleap;

cambiar (mes)

{ caso 1: caso 3: caso 5: caso 7: caso 8: caso 10: caso 12: lastday=31;break;

caso 4: caso 6: caso 9: caso 11. lastday=30;break;

caso 2: {isleap=isLeap();

if (isleap==1) lastday=29;

else último día =28;}}

return último día;}

int ValidDate()

{int valid;

int añoOK,mesOK, díaOK;

if ((año>1811)&&(año<=2012)) añoOK=1;

en caso contrario añoOK=0;

si (( mes>0)&&(mes<=12)) mesOK=1;

else mesOK=0;

if ((día>0)&&(día<= últimodíadelmes() ) díaOK=1;

else díaOK=0;

if(añoOK && mesOK && díaOK) valid=1;

else valid=0;

Devolución válida;}

int getday(){printf("Ingrese un mes/un día/un año");scanf("%d %d %d",&mes,&día ,&year);

return ValidDate();}

void incrementdate()

{if (día

else

{día=1;

if (mes==12)

{mes=1; año+=1;}

else mes+=1;}}

void print()

if (ValidDate())printf("el día siguiente es %d/%d/%d ",mes,día,año); elseprintf("Error de fecha");}

void main(){getday();incrementdate();print();}

Además de esto, descubrimos otro problema.

Después de escribir, aunque tiene una verificación de entrada, tal como está escrita ahora, la verificación no tiene ningún efecto.

Puede reescribir getday (); if (getday () == 0) {printf ("Error de fecha"} en el programa principal. Esto significa que si la fecha ingresada es anormal, aparecerá un mensaje de error y el el programa finalizará.

Las funciones principales incluyen

1 Consultar el día de la semana correspondiente a cada día de un determinado mes en un determinado año

int. día del mes[12]={31,28,31,30 ,31,30,31,31,30,31,30,31}

int main()

{ struct date d;

getdate( &d);

printf("Hoy es: %d año %d mes %d día/n",d.da_year,d.da_mon, d.da_day);

rili (d.da_year,d.da_mon-1);

sistema("pausa");

return 0;

void rili(int año, int mes)

{ int d,w,i,s,c,p

char x

mientras(mes>11) {

mes-=12;

año++ }

if(runniansub(año)) mesdía[1 ]=29;

printf( "%d año %d mes\n",año,mes+1);

printf("S M T W T F S\n"); s=semana(año,mes+1,1);

for(i=0; i<3*s; i++ ) printf(" ");

for(d=1 ;d<=mesdía[mes];d++) {

if(c>6) {

printf("\ n");

c= 0; }

c++;

printf("%d",d);

printf ("%s",(d<. 10)?" ":" "); }

c++;

printf("%s",(d<. 10)? " :" "); }

printf("\n");

printf("Próximo mes N, último mes P, salida Q"); >x=getch();

printf("%c\n",x

if(x=='N' || x=='n') { rili( año,mes+1); }

else

else if(x=='P' || x=='p') { rili( año,mes -1); }

else if(x=='P' || x=='p') { rili( año,mes-1 }

else { printf("¡Gracias por usar! 88\n"); return;}}}

int runniansub(int año)

{ return ((año%4==0 && año). %100!=0) ||| (año%4 ==0 && año%400==0));

int m, int d)

{ if( (m==1)||(m==2)) {

m+=12; y--; }

return ((d+2*m+3*(m+1)/5+y+y/4-y/10y/400)+1)%7

#include

int IsLeapYear(int /*Definir subfunción*/

main()

< p); >{int i,día,año,temp,temp_i; /*definir variables*/

long int Año_días=0;

int Año_Inicio=1;

int Por_Año_Días;

int mes_día[]={31,28,31,30,31,30,31,31,31,30,31,30,31,30,31,31 , 31,29};/*define

meses*/

printf("¡Sabemos que 2000.01.01 es sábado!/n");

printf ("Ingrese el año y el mes:"); /*Mensaje rápido*/

while(1)

{scanf("%d %d",&.year, &temp);

if(getchar()=='q')

salir(0);

mientras(Year_Start < año)

{ if(IsLeapYear(Year_Start))/* Llame a la función IsLeapYear para determinar si es un año bisiesto*/

Per_Year_Days=366 /* Un año bisiesto tiene 366 días en un año*; /

else

Per_Year_Days=365; /* El año promedio es 365 días*/

Year_days= Year_days + Per_Year_Days;

Year_Start++;

}/* Genera el calendario de cada mes*/

// for(temp=1;temp<=12;temp++)

{ switch( temp)

{ caso 1: printf("Enero (%d) \n",año);descanso;

caso 2: printf("Febrero (%d) \n ",año); descanso;

caso 3: printf("Marzo (%d) \n",año) año); descanso;

caso 7: printf( "Julio (%d) \n",año); descanso;

caso 8: printf("Agosto (%d) \n",año); descanso;

caso 9: printf(" Septiembre (%d)\n",año);descanso;

caso 10: printf("Octubre (%d)\n",año);descanso;

caso 11: printf("Noviembre (%d)\n",año);descanso;<

caso 12: printf("Diciembre (%d) \n",año;descanso); /p>

predeterminado:printf("error\n");

<

p> }

i=Year_days%7;

printf("Lun Mar Mié Jue Vie Sáb Dom\n"); p> if(i!=0)

for(temp_i=0;temp_i

printf(" ");

día= 1;

if( IsLeapYear(año)&&temp==2)

while(día<=mes_día[12])

{if(día>1 )

if(año_días%7==0)

printf("/ n");

if(día>=10)

printf("%d ",día);

else

printf("%d ",día);

Año_días++;

día++;}

else

while(día<=mes_día[temp-1])

{ if(día>1)

if(Días_año%7==0)

printf("\n");

if(día>=10)

printf("%d ",día);

else

printf("%d ",día);

Año_días++;

day++; }/* Introduce las fechas en secuencia*

printf("\n");

int IsLeapYear(int año) /* Determina si es un año bisiesto*/

{ if ((año%4==0)&&(año%100!=0)||(año%400==0))

Volver 1;

else

return 0;}}

#include

int salto (int año)

{if(year%4==0&&year%100!=0||(year%400==0) //determinar si es año bisiesto

return 1;

else return 0; }

#clude

int days_month (int mes,int año) //Determina si es un año bisiesto

{ if( mes==1||mes==3||mes==5||mes==7||) mes==8||mes==10||mes==12)

{ if(month==4||month==6||month==9||month==11) //encuentra el mes grande

return 31; /p>

{ if (month==4||month==6||month==9||month==11) //encontrar el mes pequeño

return 30

p>

{ if( mes==2&mes==3||mes==5||mes==7||mes==11) //encuentra el sm

todo el mes

devuelve 30

if(month==2&&leap(year)==1) devuelve 29 //determina si febrero es de 29 días o 29 días

else return 28; }

int primero=1, año bisiesto=1.

int primer día(int mes,int año)

{int w

w=(1+2*mes+3*(mes+1) /5+año+año/4+año/400-año/100)%7+1; //determina qué día de la semana es el primer día del mes

return w; p>

main()

{int i,j =1,k=1,a,b,mes,año

printf("\n ingresa mes y; año:\n");

scanf("%d%d",&mes,&año); //ingresa mes y año

b=días_mes (mes,año);

a=firstday (mes,año);

printf(" Dom Lun Mar Wed Thu Vie Sat \n");

if(a==7)

{for(i=1;i< ;=b;i++)

{printf("%4d",i); / p>

if(i%7==0)

{printf("\n");

{mientras (j<=4*a)

{printf(" ")

j++; ( i=1;i<=b;i++)

{printf("%4d",i

if(i==7*k-a)

);

{printf("\n");

k++ }}}}

printf("\n");