// convocatoria.cpp - Definición de la clase CConvocatoria
#include <iostream>
#include "convocatoria.h"
using namespace std;

CConvocatoria::CConvocatoria(int c, float n):
convocatoria(c) // iniciar atributos
{
  // Comprobar que los valores c y n son válidos y
  // asignar la fecha actual.
  asignarConvocatoria(c);
  asignarFecha();
  asignarNota(n);
}

void CConvocatoria::asignarConvocatoria(int conv)
{
  if (convocatoria > 6)
  {
    cerr << "error: convocatorias agotadas\n";
    return;
  }
  if (conv < 0 || conv > 6)
  {
    cerr << "error: convocatoria no válida\n";
    convocatoria = 0;
    return;
  }
  convocatoria = conv;
}

int CConvocatoria::obtenerConvocatoria() const
{
  return convocatoria;
}

void CConvocatoria::asignarFecha(int mes, int anyo)
{
  int d, m, a;
  if (CFecha(1, mes, anyo).fechaCorrecta())
  {
    m = mes; a = anyo;
  }
  else
    CFecha::obtenerFechaActual(d, m, a);
  char sfecha[7];
  sprintf(sfecha, "%.2d%.4d", m, a);
  fecha = string(sfecha);
}

string CConvocatoria::obtenerFecha() const
{
  return fecha;
}

void CConvocatoria::asignarNota(float n)
{
  if (n < 0 || n > 10)
  {
    cerr << "error: nota no válida\n";
    nota = 0;
    return;
  }
  nota = n;
}

float CConvocatoria::obtenerNota()
{
  return nota;
}

