Beispiel #1
0
        /// <summary>
        /// Comparar este periodo con otro objeto del tipo periodo
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            if (obj == null || !(obj is Period))
            {
                return(false);
            }

            if (this == obj)
            {
                return(true);
            }

            Period comparar = (Period)obj;

            if (Tipo != comparar.Tipo)
            {
                return(false);
            }
            if (Tipo == Instante && FechaInstante.CompareTo(comparar.FechaInstante) != 0)
            {
                return(false);
            }
            if (Tipo == Duracion && (FechaInicio.CompareTo(comparar.FechaInicio) != 0 || FechaFin.CompareTo(comparar.FechaFin) != 0))
            {
                return(false);
            }
            return(true);
        }
 /// <summary>
 /// Determina si el periodo dado es equivalente a la plantilla actual.
 /// </summary>
 /// <param name="periodo">Periodo que se pretende comparar.</param>
 /// <param name="definicionPlantilla">Definicion de la plantilla para inicializar las variables del periodo.</param>
 /// <returns>Si el contexto aplica para la plantilla actual.</returns>
 public bool EsEquivalente(PeriodoDto periodo, IDefinicionPlantillaXbrl definicionPlantilla)
 {
     if (periodo.Tipo != Tipo)
     {
         return(false);
     }
     if (!VariablesEvaluadas)
     {
         EvaluaVariablesPlantilla(definicionPlantilla);
     }
     if (Tipo == PeriodoDto.Instante && FechaInstante != null)
     {
         if (!FechaInstante.Equals(periodo.FechaInstante) &&
             !((DateTime)FechaInstante).ToUniversalTime().Equals(periodo.FechaInstante))
         {
             return(false);
         }
     }
     if (Tipo == PeriodoDto.Duracion && FechaInicio != null && FechaFin != null)
     {
         if (!FechaInicio.Equals(periodo.FechaInicio) &&
             !((DateTime)FechaInicio).ToUniversalTime().Equals(periodo.FechaInicio))
         {
             return(false);
         }
         if (!FechaFin.Equals(periodo.FechaFin) &&
             !((DateTime)FechaFin).ToUniversalTime().Equals(periodo.FechaFin))
         {
             return(false);
         }
     }
     return(true);
 }
Beispiel #3
0
        public DateTime ObtenerFechaInstanteEfectiva()
        {
            var ret = FechaInstante;

            if (!TieneFechaInstanteParteTiempo())
            {
                ret = FechaInstante.AddDays(1);
            }
            return(ret);
        }