public ValorMag MultiplicaValorMag(ValorMag valorMag1, ValorMag valorMag2) { if (valorMag1.ToString() == "1m2" || valorMag1.ToString() == "10m1") { return(valorMag2); } else if (valorMag2.ToString() == "1m2" || valorMag2.ToString() == "10m1") { return(valorMag1); } else if (valorMag1.Valor == 0 || valorMag2.Valor == 0) { return(new ValorMag(0, 1)); } else { int magFinal = (valorMag1.Magnitude + valorMag2.Magnitude) - 2; int valorFinal = (valorMag1.Valor * valorMag2.Valor); while (valorFinal > 99) { valorFinal = valorFinal / 10; magFinal = magFinal + 1; } return(new ValorMag(valorFinal, magFinal)); } }
public ValorMag SubtraiValorMag(ValorMag valorMag1, ValorMag valorMag2) { if (valorMag1.ToString() == valorMag2.ToString()) { return(new ValorMag()); } int valorFinal = 0; int magnitudeFinal = 0; int valor1 = valorMag1.Valor; int valor2 = valorMag2.Valor; int mag1 = valorMag1.Magnitude; int mag2 = valorMag2.Magnitude; if (mag1 == mag2) { magnitudeFinal = mag1; valorFinal = valor1 - valor2; if (valorFinal < 0) { valorFinal = valorFinal * 10; magnitudeFinal = magnitudeFinal - 1; } } else if (mag1 - mag2 == 1 || mag1 - mag2 == -1) { magnitudeFinal = Math.Max(mag1, mag2); if (magnitudeFinal == mag1) { valorFinal = valor1 - (valor2 / 10); } else { valorFinal = valor2 - (valor1 / 10); } } else { magnitudeFinal = Math.Max(mag1, mag2); if (magnitudeFinal == mag1) { valorFinal = valor1; } else { valorFinal = valor2; } } ValorMag resultado = new ValorMag(valorFinal, magnitudeFinal); return(resultado); }
public override string ToString() { if (this.ValorDuracao != null && UnidadeDuracao != null) { return("Durante " + ValorDuracao.ToString() + " " + UnidadeDuracao); } else { return(this.TipoDuracao); } }