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)); } } } }
public Magnitud ConvertirmeA(string nuevaUnidadDeMedida) { Magnitud conversion = ConversorDeMagnitudes.Convertir(magnitudOrigen: this, unidadDestino: nuevaUnidadDeMedida); this.valor = conversion.valor; this.unidaddemedida = conversion.unidaddemedida; return(this); }
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); } }
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); }
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); }
public Magnitud(Magnitud copiarDe) { this.valor = copiarDe.valor; this.unidaddemedida = copiarDe.unidaddemedida; }