PLE:Unidad8Ejercicio01

Fichero fecha.h

/* fecha.h

class fecha {  private: int dia, mes, anio; void suma1Dia; public: fecha; fecha(char *c); fecha(int d, int m, int a); void leeFecha; void escribeFecha; int esBisiesto; void sumaDias(int d); bool operator==(fecha f); bool operator!=(fecha f); bool operator<(fecha f); bool operator>=(fecha f); bool operator>(fecha f); bool operator<=(fecha f); friend ostream& operator<<(ostream &o, const fecha &f); };

Fichero fecha.cpp

/* programa:      fecha.cpp Descipcion:    fecha.cpp
 * 1) include 
 * 2) include 
 * 3) include 
 * 4) include "fecha.h"
 * 1) include "fecha.h"

fecha::fecha {       dia = 1; mes = 1; anio =1970; } fecha::fecha(char *c) {       char cd[3], cm[3], ca[5]; // día cd[0] = c[0]; cd[1] = c[1]; cd[2] = '\0'; dia = atoi(cd); // mes cm[0] = c[3]; cm[1] = c[4]; cm[2] = '\0'; mes = atoi(cm); // Año ca[0] = c[6]; ca[1] = c[7]; ca[2] = c[8]; ca[3] = c[9]; ca[4] = '\0'; anio = atoi(ca); }

fecha::fecha(int d, int m, int a) { dia = d;       mes = m;        anio = a; } void fecha::leeFecha {       char cf[11], cd[3], cm[3], ca[5]; // Leemos la cadena fecha cin >> cf; // día cd[0] = cf[0]; cd[1] = cf[1]; cd[2] = '\0'; dia = atoi(cd); // mes cm[0] = cf[3]; cm[1] = cf[4]; cm[2] = '\0'; mes = atoi(cm); // Año ca[0] = cf[6]; ca[1] = cf[7]; ca[2] = cf[8]; ca[3] = cf[9]; ca[4] = '\0'; anio = atoi(ca); }

void fecha::escribeFecha {       cout << dia << '/' << mes << '/' << anio; }

int fecha::esBisiesto {       if(anio % 400 == 0 || anio % 4 == 0 && anio % 100 != 0) return 1; else return 0; }

void fecha::suma1Dia {       dia++; if(dia > 31 && (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12)) {               dia = 1; mes++; }       else if(dia > 30 && (mes == 4 || mes == 6 || mes == 9 || mes == 11 )) {               dia = 1; mes++; }       else // febrero {               if(esBisiesto) {                       if(dia > 29) {                               dia = 1; mes++; }               }                else // no bisiesto {                       if(dia > 28) {                               dia = 1; mes++; }               }        }        // Controlamos que el mes no se sale de rango if(mes > 12) {               mes = 1; anio++; } }

void fecha::sumaDias(int d) { while(d > 0) {               suma1Dia; d--; } }

bool fecha::operator==(fecha f) { return anio == f.anio && mes == f.mes && dia == f.dia; }

bool fecha::operator!=(fecha f) { return !(*this == f); }

bool fecha::operator<(fecha f) { bool res= false; if(anio < f.anio) res = true; else if(anio == f.anio && mes < f.mes) res = true; else if(anio == f.anio && mes == f.mes && dia < f.dia) res = true; return res; }

bool fecha::operator>=(fecha f) { return *this > f || *this == f; }

bool fecha::operator>(fecha f) { bool res= false; if(anio > f.anio) res = true; else if(anio == f.anio && mes > f.mes) res = true; else if(anio == f.anio && mes == f.mes && dia > f.dia) res = true; return res; }

bool fecha::operator<=(fecha f) { return *this < f || *this == f; }

ostream &operator<<(ostream &o, const fecha &f) {       o << f.dia; o << '/'; o << f.mes; o << '/'; o << f.anio; o << '/'; return o; }

Fichero Ej01.cpp

/* programa:      ej01 Descipcion:    Usamos clase fecha.
 * 1) include 
 * 2) include 
 * 3) include 
 * 4) include "fecha.h"
 * 1) include "fecha.h"

void main {       fecha f1,f2; int n;       cout << "Introduzca una fecha "; f1.leeFecha; cout << endl << "La fecha es "; f1.escribeFecha; cout << endl << "Introduzca el número de dias a sumar "; cin >> n;       f1.sumaDias(n); cout << endl << "La fecha nueva es "; f1.escribeFecha;

cout << "Introduzca otra fecha "; f2.leeFecha; cout << endl << "La fecha es "; f2.escribeFecha;

if(f1 == f2) {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " es igual que la fecha: "; f2.escribeFecha; }       else {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " no es igual que la fecha: "; f2.escribeFecha; }

if(f1 != f2) {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " es distinta que la fecha: "; f2.escribeFecha; }       else {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " no es distinta que la fecha: "; f2.escribeFecha; }

if(f1 > f2) {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " es mayor que la fecha: "; f2.escribeFecha; }       else {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " no es mayor que la fecha: "; f2.escribeFecha; }

if(f1 >= f2) {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " es mayor o igual que la fecha: "; f2.escribeFecha; }       else {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " no es mayor o igual que la fecha: "; f2.escribeFecha; }

if(f1 < f2) {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " es menor que la fecha: "; f2.escribeFecha; }       else {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " no es menor que la fecha: "; f2.escribeFecha; }

if(f1 <= f2) {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " es menor o igual que la fecha: "; f2.escribeFecha; }       else {               cout << endl << "La fecha: "; f1.escribeFecha; cout << " no es menor o igual que la fecha: "; f2.escribeFecha; }

getch; }