Fandom

Scratchpad

PLE:Unidad5Ejercicio22

215,870pages on
this wiki
Add New Page
Discuss this page0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

fecha.h

#ifndef _FECHA_
#define _FECHA_

struct fecha
{
      int dia;
      int mes;
      int anyo;
};

void leeFecha(fecha &f);
void escribeFecha(fecha f);
void sumaDia(fecha &f);
void sumaDias(fecha &f, unsigned int n);
bool esFinAnyo(fecha f);
bool esFinMes(fecha f);
bool esAniversario(fecha f1, fecha f2);
bool esIgual(fecha f1, fecha f2);
bool esDistinta(fecha f1, fecha f2);
bool esMenor(fecha f1, fecha f2);
bool esMenorIgual(fecha f1, fecha f2);
bool esMayor(fecha f1, fecha f2);
bool esMayorIgual(fecha f1, fecha f2);

#endif

fecha.cpp

/*
Programa:         fecha.cpp
Descripción:      Estructura fecha.
*/
#include <iostream>
#include <conio>
#include <stdlib>
#include <time>
#include "fecha.h"

using namespace std;

void leeFecha(fecha &f)
{
      char cfecha[14];
      char cdia[3];
      char cmes[3];
      char canyo[8];
      int i;

      cin >> cfecha;

      for(i = 0; i < 2; i++)
            cdia[i] = cfecha[i];
      cdia[i] = '\0';

      for(i = 3; i < 5; i++)
            cmes[i - 3] = cfecha[i];
      cmes[i - 3] = '\0';

      for(i = 6; i < strlen(cfecha) ; i++)
            canyo[i - 6] = cfecha[i];
      canyo[i - 6] = '\0';

      f.dia = atoi(cdia);
      f.mes = atoi(cmes);
      f.anyo = atoi(canyo);
}

void escribeFecha(fecha f)
{
      cout << f.dia << '/' << f.mes << '/' << f.anyo;
}

bool esBisiesto(fecha f)
{
      if((f.anyo % 400 == 0) || (f.anyo % 4 ==0 && f.anyo % 100 != 0))
            return true;
      else
            return false;
}

void sumaDia(fecha &f)
{
      // comprobamos si es fin de año
      if(esFinAnyo(f)) {
            f.dia = 1;
            f.mes = 1;
            f.anyo++;
      }else if(esFinMes(f)) {
            f.dia = 1;
            f.mes++;
      }else {
            f.dia++;
      }
}

void sumaDias(fecha &f, unsigned int n)
{
      for(unsigned int i=0; i < n; i++)
            sumaDia(f);
}

bool esFinAnyo(fecha f)
{
      if(f.dia == 31 && f.mes == 12)
            return true;
      else
            return false;
}

bool esFinMes(fecha f)
{
      if((f.mes == 1 || f.mes == 3 || f.mes == 5 || f.mes == 7 ||
      f.mes == 8 || f.mes == 10 || f.mes == 12) && f.dia == 31)
            return true;
      else if((f.mes == 4 || f.mes == 6 || f.mes == 9 ||
      f.mes == 11) && f.dia == 30)
            return true;
      else if(f.mes == 2 && f.dia == 28 && !esBisiesto(f))
            return true;
      else if(f.mes == 2 && f.dia == 29 && esBisiesto(f))
            return true;
      else
            return false;
}

bool esAniversario(fecha f1, fecha f2)
{
      if(f1.dia == f2.dia && f1.mes == f2.mes)
            return true;
      else
            return false;
}

bool esIgual(fecha f1, fecha f2)
{
      if(f1.dia == f2.dia && f1.mes == f2.mes && f1.anyo == f2.anyo)
            return true;
      else
            return false;
}

bool esDistinta(fecha f1, fecha f2)
{
      return !esIgual(f1,f2);
}

bool esMenor(fecha f1, fecha f2)
{
      if(f1.anyo < f2.anyo)
            return true;
      else if(f1.anyo == f2.anyo && f1.mes < f2.mes)
            return true;
      else if(f1.anyo == f2.anyo && f1.mes == f2.mes && f1.dia < f2.dia)
            return true;
      else
            return false;
}

bool esMenorIgual(fecha f1, fecha f2)
{
      return (esMenor(f1,f2) || esIgual(f1,f2));
}

bool esMayor(fecha f1, fecha f2)
{
      return !esMenorIgual(f1,f2);
}

bool esMayorIgual(fecha f1, fecha f2)
{
      return (esMayor(f1,f2) || esIgual(f1,f2));
}

Ejercicio22Unidad5.cpp

/*
Programa:         Unidad5Ejercicio22.cpp
Descripción:      Estructura fecha.

*/
#include <iostream>
#include <conio>
#include <stdlib>
#include <time>
#include "fecha.h"

using namespace std;

void main()
{
      fecha f1, f2;
      unsigned int d;

      cout << "Introduzca una fecha ";
      leeFecha(f1);
      cout << "\nLa fecha inrtoducida es ";
      escribeFecha(f1);

      if(esFinMes(f1))
            cout << "\nEs fin de mes";
      else
            cout << "\nNO es fin de mes";

      if(esFinAnyo(f1))
            cout << "\nEs fin de año";
      else
            cout << "\nNO es fin de año";

      sumaDia(f1);
      cout << "\nLafecha del dia siguiente es: ";
      escribeFecha(f1);

      cout << "\nIntroduzca el numero de dias a sumar ";
      cin >> d;

      sumaDias(f1,d);
      cout << "\nLa fecha obtenida es: ";
      escribeFecha(f1);

      cout << "\nIntroduzca otra fecha ";
      leeFecha(f2);

      if(esAniversario(f1,f2))
            cout << "\nEs aniversario de la primera fecha";
      else
            cout << "\nNo es aniversario de la primera fecha";

      if(esIgual(f1,f2))
            cout << "\nLas fechas son iguales";
      else
            cout << "\nLas fechas no son iguales";

      if(esMenor(f1,f2))
            cout << "\nLa primera es menor que la segunda";
      else
            cout << "\nLa primera no es menor que la segunda";


      cin.ignore();
      cin.get();
}

Also on Fandom

Random wikia