Indicar a partir del número de días a partir del 01-01-2011, ¿Cuántos años, meses, semanas y días constituyen el número de días.
Funciones: BISIESTO(ano), DIASMES(mes)
INICIO
DíasInicio=0,anos, meses=0, semanas=0, anoActual=2011, diasRestantes=0
MOSTRAR “Introduzca el número de días: “
LEER días
diasRestantes=dias
MIENTRAS (diasRestantes>0) HACER
SI (diasRestantes>366)
SI ESBISIESTO(anoActual)
diasRestantes=diasRestantes-366
SINO
diasRestantes=diasRestantes-365
anos=anos+1
anoActual=anoActual+1
FIN SI
SINO
SI (diasRestantes>365)
diasRestantes=diasRestantes-365
anos=anos+1
anoActual=anoActual+1
SINO
Índice=0
MIENTRAS (diasRestantes>NDIAS(i))
SI ESBISIESTO(anoActual) Y (índice=2)
diasRestantes=diasRestantes-NDIAS(índice)-1
meses=meses+1
índice = índice + 1
SINO
Días= días + NDIAS(índice)
diasRestantes = diasRestantes – NDIAS(índice)
meses=meses + 1
índice = índice +1
FIN SI
FIN MIENTRAS
SI (diasRestantes>=7)
Semanas=diasRestantes/7
Días=RESTO(diasRestantes/7)
diasRestantes=0 //Condición de finalización
FIN SI
FIN SI
FIN SI
FIN MIENTRAS
MOSTRAR “El número de años es: “ anos
MOSTRAR “El número de meses es: “ meses
MOSTRAR “El número de semanas es: “ semanas
MOSTRAR “El número de días es: “ dias
FIN
#include <stdio.h>
int main() {
int diasInicio=0,dias=0, meses=0,anos=0, semanas=0, anoActual=2011, diasRestantes=0;
int indice=0;
printf("Introduzca el número de días: ");
scanf("%d",&diasInicio);
diasRestantes=diasInicio;
while (diasRestantes>0) {
if (diasRestantes>=366) {
if (esBisiesto(anoActual)) {
diasRestantes=diasRestantes-366;
}else {
diasRestantes=diasRestantes-365;
}
anos=anos+1;
anoActual=anoActual+1;
}
else {
if ((diasRestantes==365)&&(!esBisiesto(anoActual))) {
diasRestantes=diasRestantes-365;
anos=anos+1;
anoActual=anoActual+1;
}
else {
indice=1;
while (diasRestantes>=diasMes(indice)) {
if (esBisiesto(anoActual)&&(indice==2)) {
diasRestantes=diasRestantes-diasMes(indice)-1;
meses=meses+1;
indice++;
}
else {
dias=dias+diasMes(indice);
diasRestantes=diasRestantes-diasMes(indice);
meses=meses+1;
indice++;
}
}
if (diasRestantes>=7) {
semanas=diasRestantes/7;
dias=diasRestantes%7;
diasRestantes=0;
}
else {
dias=diasRestantes;
diasRestantes=0;
}
}
}
}
printf ("El número de años= %d\n", anos);
printf ("El número de meses es= %d\n", meses);
printf ("El número de semanas es= %d\n", semanas);
printf ("El número de días es= %d\n", dias);
return(0);
}
int esBisiesto(int ano) {
if ((ano%4==0) && ((ano%400==0) || (ano%100!=0)))
return 1;
else
return 0;
}
int diasMes(int mes) {
short diasMeses[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
return (diasMeses[mes-1]);
}
Funciones: BISIESTO(ano), DIASMES(mes)
INICIO
DíasInicio=0,anos, meses=0, semanas=0, anoActual=2011, diasRestantes=0
MOSTRAR “Introduzca el número de días: “
LEER días
diasRestantes=dias
MIENTRAS (diasRestantes>0) HACER
SI (diasRestantes>366)
SI ESBISIESTO(anoActual)
diasRestantes=diasRestantes-366
SINO
diasRestantes=diasRestantes-365
anos=anos+1
anoActual=anoActual+1
FIN SI
SINO
SI (diasRestantes>365)
diasRestantes=diasRestantes-365
anos=anos+1
anoActual=anoActual+1
SINO
Índice=0
MIENTRAS (diasRestantes>NDIAS(i))
SI ESBISIESTO(anoActual) Y (índice=2)
diasRestantes=diasRestantes-NDIAS(índice)-1
meses=meses+1
índice = índice + 1
SINO
Días= días + NDIAS(índice)
diasRestantes = diasRestantes – NDIAS(índice)
meses=meses + 1
índice = índice +1
FIN SI
FIN MIENTRAS
SI (diasRestantes>=7)
Semanas=diasRestantes/7
Días=RESTO(diasRestantes/7)
diasRestantes=0 //Condición de finalización
FIN SI
FIN SI
FIN SI
FIN MIENTRAS
MOSTRAR “El número de años es: “ anos
MOSTRAR “El número de meses es: “ meses
MOSTRAR “El número de semanas es: “ semanas
MOSTRAR “El número de días es: “ dias
FIN
#include <stdio.h>
int main() {
int diasInicio=0,dias=0, meses=0,anos=0, semanas=0, anoActual=2011, diasRestantes=0;
int indice=0;
printf("Introduzca el número de días: ");
scanf("%d",&diasInicio);
diasRestantes=diasInicio;
while (diasRestantes>0) {
if (diasRestantes>=366) {
if (esBisiesto(anoActual)) {
diasRestantes=diasRestantes-366;
}else {
diasRestantes=diasRestantes-365;
}
anos=anos+1;
anoActual=anoActual+1;
}
else {
if ((diasRestantes==365)&&(!esBisiesto(anoActual))) {
diasRestantes=diasRestantes-365;
anos=anos+1;
anoActual=anoActual+1;
}
else {
indice=1;
while (diasRestantes>=diasMes(indice)) {
if (esBisiesto(anoActual)&&(indice==2)) {
diasRestantes=diasRestantes-diasMes(indice)-1;
meses=meses+1;
indice++;
}
else {
dias=dias+diasMes(indice);
diasRestantes=diasRestantes-diasMes(indice);
meses=meses+1;
indice++;
}
}
if (diasRestantes>=7) {
semanas=diasRestantes/7;
dias=diasRestantes%7;
diasRestantes=0;
}
else {
dias=diasRestantes;
diasRestantes=0;
}
}
}
}
printf ("El número de años= %d\n", anos);
printf ("El número de meses es= %d\n", meses);
printf ("El número de semanas es= %d\n", semanas);
printf ("El número de días es= %d\n", dias);
return(0);
}
int esBisiesto(int ano) {
if ((ano%4==0) && ((ano%400==0) || (ano%100!=0)))
return 1;
else
return 0;
}
int diasMes(int mes) {
short diasMeses[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
return (diasMeses[mes-1]);
}
No hay comentarios:
Publicar un comentario