Número de días entre 2 fechas

Andrés Bernal

/*ESTE PROGRAMA NOS PEDIRA DOS FECHAS Y NOS DIRA LOS DIAS QUE HAY ENTRE ELLAS*/

#include<iostream>
using namespace std;

int main()
{
int anio,mes,dia,anio2,mes2,dia2,i,n=0;
int dif,ndias,sdias,dias_anio,t,tot;

cout << "Este programa nos permite conocer el tiempo en dias entre dos fechas" << endl;
cout << "La segunda fecha debera ser mayor que la primera." << endl << endl;
cout << "Introduce la primera fecha" << endl;
cout << "ANIO: "; cin >> anio;
cout << "MES: "; cin >> mes;
cout << "DIA: "; cin >> dia;
cout << "Introduce la segunda fecha" << endl;
cout << "ANIO: "; cin >> anio2;
cout << "MES: "; cin >> mes2;
cout << "DIA: "; cin >> dia2;
cout << endl << endl;

dif=anio2-anio;

if((anio2==anio)&&(mes2==mes)&&(dia2==dia))
{
cout << "LAS DOS FECHAS CORRESPONDEN AL MISMO DIA " << endl;
}
else if((anio2==anio)&&(mes2==mes)&&(dia2!=dia))
{
cout << "ENTRE LA PRIMERA Y LA SEGUNDA FECHA HAY " << (dia2-dia) << " DIAS" << endl;
}
else
{
if (((anio % 4 == 0)&&(anio%100!=0) || (anio%400==0)))
{
dias_anio=366;
if(mes==1)
ndias=335+(31-dia);
if(mes==2)
ndias=306+(29-dia);
if(mes==3)
ndias=275+(31-dia);
if(mes==4)
ndias=245+(30-dia);
if(mes==5)
ndias=214+(31-dia);
if(mes==6)
ndias=184+(30-dia);
if(mes==7)
ndias=153+(31-dia);
if(mes==8)
ndias=122+(31-dia);
if(mes==9)
ndias=92+(30- dia);
if(mes==10)
ndias=61+(31-dia);
if(mes==11)
ndias=31+(30-dia);
if(mes==12)
ndias=0+(31-dia);
}
else
{
dias_anio=365;
if(mes==1)
ndias=334+(31-dia);
if(mes==2)
ndias=306+(28-dia);
if(mes==3)
ndias=275+(31-dia);
if(mes==4)
ndias=245+(30-dia);
if(mes==5)
ndias=214+(31-dia);
if(mes==6)
ndias=184+(30-dia);
if(mes==7)
ndias=153+(31-dia);
if(mes==8)
ndias=122+(31-dia);
if(mes==9)
ndias=92+(30-dia);
if(mes==10)
ndias=61+(31-dia);
if(mes==11)
ndias=31+(30-dia);
if(mes==12)
ndias=0+(31-dia);
}
if (((anio2 % 4 == 0)&&(anio2%100!=0) || (anio2%400==0)))
{
if(mes2==1)
sdias=dia2;
if(mes2==2)
ndias=31+dia2;
if(mes2==3)
sdias=60+dia2;
if(mes2==4)
sdias=91+dia2;
if(mes2==5)
sdias=121+dia2;
if(mes2==6)
sdias=152+dia2;
if(mes2==7)
sdias=182+dia2;
if(mes2==8)
sdias=213+dia2;
if(mes2==9)
sdias=244+dia2;
if(mes2==10)
sdias=274+dia2;
if(mes2==11)
sdias=305+dia2;
if(mes2==12)
sdias=335+dia2;
}
else
{
if(mes2==1)
sdias=dia2;
if(mes2==2)
ndias=31+dia2;
if(mes2==3)
sdias=59+dia2;
if(mes2==4)
sdias=90+dia2;
if(mes2==5)
sdias=120+dia2;
if(mes2==6)
sdias=151+dia2;
if(mes2==7)
sdias=181+dia2;
if(mes2==8)
sdias=212+dia2;
if(mes2==9)
sdias=243+dia2;
if(mes2==10)
sdias=273+dia2;
if(mes2==11)
sdias=304+dia2;
if(mes2==12)
sdias=334+dia2;
}
if(dif>1)
{
for(i=(anio+1);i<(anio2-1);i++)
  if (((i % 4 == 0)&&(i%100!=0) || (i%400==0))) n++;
t=(n*366)+((dif-1)-n)*365;
tot=t+ndias+sdias;
cout << "ENTRE LA PRIMERA Y LA SEGUNDA FECHA HAY: " << tot << " DIAS.";
}
else if(dif==1) { cout << "ENTRE LA PRIMERA Y LA SEGUNDA FECHA HAY: " << (ndias+sdias) << " DIAS."; }
else if(dif==0)
{
 tot=ndias+sdias-ndias_anio;
 cout << "ENTRE LA PRIMERA Y LA SEGUNDA FECHA HAY: " << tot << " DIAS.";
}
}
return 0;
}
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Una respuesta a Número de días entre 2 fechas

  1. Observa pequeños cambios introducidos y el último caso considerado al final del programa.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s