Usando programación de matrices en lenguaje C, al completar el año, mes y día, el resultado es el día del año.
Método 1:
#include
#include
#include
void main()
{
int día,mes,año,suma,salto;
hacer{ p>
printf("\ningrese año mes día\n");
printf("\ningrese año mes día\n");
scanf( " %d %d %d",&año,&mes,&día);
if((mes==1&&día<=31&&día>=1)||
((año% 4 ==0&&año%100!=0||año%400==0)&&(mes==2&&día<=29&&día>=1))||
(!(año%4==0&&año % 100!=0||año%400==0)&&(mes==2&&día<=28&&día>=1))||
(mes==3&&día<=31&&día>=1)| (mes==4&&día<=30&&día>=1)||
(mes==5&&día<=31&&día>=1)||(mes==6&&día<=30&&día>=1)|| /p>
(mes==7&&día<=31&&día>=1)||(mes==8&&día<=31&&día>=1)||
(mes==9&&día<=30&&día > =1)||(mes==10&&día<=31&&día>=1)||
(mes==11&&día<=30&&día>=1)||(mes==12&&día<=31&&día> = 1))
{ switch(month)//Primero calcula el número total de días del mes anterior
{
case 1:sum=0; romper ;
caso 2:sum=31;romper;
caso 3:sum=59;romper;
caso 4:sum=90;romper;
caso 5:sum=120;ruptura;
caso 6:sum=151;ruptura;
caso 7:sum=181;ruptura; p>
caso 8
:sum=212;break;
caso 9:sum=243;break;
caso 10:sum=273;break;
caso 11:sum =304;romper;
caso 12:sum=334;romper;
default:printf("error de datos");
romper;
}
sum=sum+day; //Suma el número de días en un día determinado
if(year%400==0||(year%4 == 0&&year%100!=0)) //Juzga si es un año bisiesto
salto=1;
else
salto=0;
if(leap==1&&month>2) //Si es un año bisiesto y el mes es mayor que 2, se debe sumar un día al total de días
sum++ ;
//clrscr(); //Borrar pantalla
system("cls"); //borrar pantalla
printf("%d-% d-%dis los primeros %d días del año.\n\ n",año,mes,día,suma);
printf("%d-%d-%d es el % d día de este año.\n\n",año,mes,día,suma);
}
else printf("\tErrores de datos!!!\n\n ");
}mientras(1);
}
Método 2:
#include #include struct { int año; int mes; p> int día; }fecha; void main() {int i,días; int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; hacer{ printf ("Ingrese año, mes, día:\n"); scanf("%d %d %d",&fecha.año,&fecha.mes,&fecha.día); system("cls"); //Borrar pantalla días=0; if((date.month==1&&date.day<=31&&date.day>=1 )|| ((fecha.año%4 ==0&&fecha.año%100!=0||fecha.año%400==0)&&(fecha.mes==2&&fecha.día<= 29&&date.day>=1))|| (!(date.year%4==0&&date.year%100!=0||date.year%400==0)&&(date. mes==2&&fecha.día<=28&&fecha. día>=1))|| (fecha.mes==3&&fecha.día<=31&&fecha.día>=1)||(fecha.mes==4&&fecha.día<=30&&fecha.día> =1)|| (fecha.mes==5&&fecha.día<=31&&fecha.día>=1)||(fecha.mes==6&&fecha.día<=30&&fecha.día>=1) || (fecha.mes==7&&fecha.día<=31&&fecha.día>=1)||(fecha.mes==8&&fecha.día<=31&&fecha.día>=1)|| (fecha.mes==9&&fecha.día<=30&&fecha.día>=1)||(fecha.mes==10&&fecha.día<=31&&fecha.día>=1)|| (fecha.mes==11&&fecha.día<=30&&fecha.día>=1)||(fecha.mes==12&&fecha.día<=31&&fecha.día>=1)) { for(i=1;i días+=día_tab[i]; días+=fecha.día; p> p> if((fecha.año%4==0&&fecha.año%100!=0||fecha.año%400==0)&&fecha.mes>=3) días++; printf("\n\n"); printf("\t%d/%d es el %désimo día en %d.\n ",fecha.mes,fecha.día,días,fecha.año); } else printf("\tErrores de datos!!!\n\n"); }mientras(1); }