/// <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); }
public DateTime ObtenerFechaInstanteEfectiva() { var ret = FechaInstante; if (!TieneFechaInstanteParteTiempo()) { ret = FechaInstante.AddDays(1); } return(ret); }