/*--------------------------------------------------------------------
 * FICHERO:  FecFact.c
 * OBJETIVO: Definir la funcin interna Fec_Factor()
 * AUTOR:    Pedro Reina
 * FECHA:    J.20.4.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Fecha.h"

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * FUNCION:  Fec_Factor()
 * OBJETIVO: Calcular el factor de una fecha, nmero usado internamente
 * ENTRADAS: Una fecha
 * SALIDAS:  Un entero
 * EJEMPLO:  Fec_Factor (Nacimiento)
 *------------------------------------------------------------------*/
entero Fec_Factor (Fecha)
fecha  Fecha;
  {
  entero Factor, Ano;

  Ano = Fec_Ano (Fecha);
  
  Factor = 365 * Ano + Fec_Dia(Fecha) + 31*(Fec_Mes(Fecha)-1);
  if ( Fec_Mes(Fecha) < 3 ) { Ano--; }
  Factor += (entero)(Ano/4.0) - (entero)(.75*((entero)(Ano/100.0)+1));
  if ( Fec_Mes(Fecha) >= 3 ) { Factor -= (entero)(.4*Fec_Mes(Fecha) + 2.3); }

  return ( Factor );
  }