Example #1
0
 public static Magnitud Convertir(Magnitud magnitudOrigen, string unidadDestino)
 {
     getConversor();
     if (unidadDestino == magnitudOrigen.unidaddemedida || unidadDestino == Magnitud.DESCONOCIDA ||
         magnitudOrigen.unidaddemedida == Magnitud.DESCONOCIDA || double.IsNaN(magnitudOrigen.valor))
     {
         return(magnitudOrigen);
     }
     else
     {
         DataRow[] factores = m_factoresDeConversion.Select("unidadOrigen='" + magnitudOrigen.unidaddemedida + "'"
                                                            + "AND unidadDestino='" + unidadDestino + "'");
         if (factores.Length == 1)
         {
             return(new Magnitud(magnitudOrigen.valor * factores[0].Field <double>("factorDeConversion"), unidadDestino));
         }
         else
         {
             DataRow[] factoresInversos = m_factoresDeConversion.Select("unidadOrigen='" + unidadDestino + "'"
                                                                        + "AND unidadDestino='" + magnitudOrigen.unidaddemedida + "'");
             if (factoresInversos.Length == 1)
             {
                 return(new Magnitud(magnitudOrigen.valor / factoresInversos[0].Field <double>("factorDeConversion"), unidadDestino));
             }
             else
             {
                 MessageBox.Show(messageBoxText: Properties.Resources.msgFactorDeConversionNoEncontrado + Environment.NewLine + Environment.NewLine
                                 + magnitudOrigen.ToString() + " = ? " + unidadDestino + Environment.NewLine,
                                 caption: "", button: MessageBoxButton.OK, icon: MessageBoxImage.Warning);
                 return(new Magnitud(double.NaN, Magnitud.DESCONOCIDA));
             }
         }
     }
 }
Example #2
0
        public Magnitud ConvertirmeA(string nuevaUnidadDeMedida)
        {
            Magnitud conversion = ConversorDeMagnitudes.Convertir(magnitudOrigen: this, unidadDestino: nuevaUnidadDeMedida);

            this.valor          = conversion.valor;
            this.unidaddemedida = conversion.unidaddemedida;
            return(this);
        }
Example #3
0
 public int CompareTo(Magnitud otraMagnitud)
 {
     if (this.Equals(otraMagnitud))
     {
         return(0);
     }
     else if (this.getCopiaConvertidaA(otraMagnitud.unidaddemedida).valor > this.valor)
     {
         return(1);
     }
     else
     {
         return(-1);
     }
 }
Example #4
0
 public override bool Equals(object otroObjeto)
 {
     if (otroObjeto == null)
     {
         return(false);
     }
     if (otroObjeto.GetType().Equals(this.GetType()))
     {
         Magnitud otraMagnitud = (Magnitud)otroObjeto;
         if (otraMagnitud.getCopiaConvertidaA(this.unidaddemedida).valor.Equals(this.valor))
         {
             return(true);
         }
     }
     return(false);
 }
Example #5
0
        public static Magnitud operator /(Magnitud unaMagnitud, Magnitud otraMagnitud)
        {
            Magnitud resultado;
            Magnitud otra = otraMagnitud.getCopiaConvertidaA(unaMagnitud.unidaddemedida);

            if (otra.unidaddemedida == Magnitud.DESCONOCIDA)
            {
                resultado = new Magnitud(valor: unaMagnitud.valor / otraMagnitud.valor,
                                         unidadDeMedida: unaMagnitud.unidaddemedida + "/" + otraMagnitud.unidaddemedida);
            }
            else
            {
                resultado = new Magnitud(valor: unaMagnitud.valor / otra.valor,
                                         unidadDeMedida: "");
            }
            //string _pendiente_NoSeHanContempladoTodosLosCasosPosiblesEnLasUnidadesDeMedidaDelResultado;
            return(resultado);
        }
Example #6
0
 public Magnitud(Magnitud copiarDe)
 {
     this.valor          = copiarDe.valor;
     this.unidaddemedida = copiarDe.unidaddemedida;
 }