Nueva fecha = Fecha + un número de días

Pablo Ibáñez Trallero

#include <iostream>
using namespace std;

bool esBisiesto(int anyo);
void diasDespues(int fechaInicial, int dias);

int main (){
int fecha, dias;
cout << “Dame la fecha (aaaammdd): “;
cin >> fecha;

cout << “Dame los dias a sumar: “;
cin >> dias;

diasDespues(fecha, dias);
}

bool esBisiesto(int anyo) {
return anyo % 400 == 0|| (anyo % 4 == 0 && anyo % 100 != 0);
}

void diasDespues(const int fechaInicial, const int dias) {
int fechaFinal;
int anyo = fechaInicial / 10000;
int mes = fechaInicial % anyo / 100;
int dia = fechaInicial % 100;
int i=1;
while (i <= dias){
dia++;
if (mes == 12 && dia > 31){
anyo++;
mes = 1;
dia = 1;
}
if ((mes == 1 || mes == 3 || mes == 5 || mes == 7 ||mes == 8 || mes == 10) && dia > 31){
mes++;
dia = 1;
}
if (mes == 2 && dia > 29 && (esBisiesto(anyo) == true)){
mes++;
dia = 1;
}
if(mes == 2 && dia > 28 && (esBisiesto(anyo) == false)){
mes++;
dia = 1;
}
if ((mes == 4 || mes == 6 || mes == 9 || mes == 11) && dia > 30){
mes++;
dia = 1;
}
i++;
}
fechaFinal = anyo*10000 + mes*100 + dia;

cout<< “la fecha final es: ” << fechaFinal;
}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

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 )

Google+ photo

Estás comentando usando tu cuenta de Google+. 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 )

w

Conectando a %s