public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { // Si el valor es nulo o no es un decimal devolvemos nulo. if (value == null || !(value is decimal)) { return(null); } // Evaluamos el parámetro pasado. VerValores ver = VerValores.Normal; if (parameter != null & parameter is VerValores) { ver = (VerValores)parameter; } // Asignamos el valor al número. decimal numero = (decimal)value; // Si el número es cero y no se muestran los ceros, devolvemos una cadena vacía. if (numero == 0 && ver.HasFlag(VerValores.NoCeros)) { return(null); } // Devolvemos el número. return(numero.ToString("0.00")); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { // Si el valor es nulo o no es un TimeSpan, devolvemos una cadena vacía. if (value == null || !(value is TimeSpan?)) { return(""); } // Evaluamos el parámetro pasado. VerValores ver = VerValores.Normal; if (parameter != null && parameter is VerValores) { ver = (VerValores)parameter; } // Asignamos el valor de la hora. TimeSpan hora = (TimeSpan)value; // Asignamos la hora en decimal. decimal horadecimal = hora.ToDecimal(); if (hora.Ticks == 0) { // Si la hora es cero y no se quieren mostrar los ceros, devolvemos una cadena vacía. if (ver.HasFlag(VerValores.NoCeros)) { return(""); } } else if (hora.Ticks > 0) { // Si la hora es mayor que cero y queremos hora plus, devolvemos la hora con el plus activado. if (ver.HasFlag(VerValores.HoraPlus)) { return(hora.ToTexto(true) + " (" + horadecimal.ToString("0.00") + ")"); } } else { // Si la hora es negativa y queremos horas negativas, devolvemos la hora en negativo. if (ver.HasFlag(VerValores.Negativo)) { hora = new TimeSpan(hora.Ticks * -1); return("-" + hora.ToTexto() + " (" + horadecimal.ToString("0.00") + ")"); } } // Devolvemos la hora en el formato tradicional. return(hora.ToTexto() + " (" + horadecimal.ToString("0.00") + ")"); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { // Si el valor es nulo o no es un TimeSpan, devolvemos una cadena vacía. if (value == null || !(value is int)) { return(""); } // Evaluamos el parámetro pasado. VerValores ver = VerValores.Normal; if (parameter != null && parameter is VerValores) { ver = (VerValores)parameter; } // Asignamos el valor de la hora. int minutos = (int)value; TimeSpan hora = new TimeSpan(0, minutos, 0); int horas = (int)Math.Truncate(hora.TotalHours); if (hora.Ticks == 0) { // Si la hora es cero y no se quieren mostrar los ceros, devolvemos una cadena vacía. if (ver.HasFlag(VerValores.NoCeros)) { return(""); } } if (hora.Ticks < 0) { string resultado = ""; if (horas == 0) { resultado = "-"; } return(resultado + horas.ToString("00") + ":" + (hora.Minutes * -1).ToString("00") + " (" + hora.TotalHours.ToString("0.00") + ")"); } // Devolvemos la hora en el formato tradicional. return(horas.ToString("00") + ":" + hora.Minutes.ToString("00") + " (" + hora.TotalHours.ToString("0.00") + ")"); }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { // Si el valor es nulo o no es un string, devolvemos nulo if (value == null || !(value is string)) { return(null); } // Evaluamos el parámetro pasado. VerValores ver = VerValores.Normal; if (parameter != null && parameter is VerValores) { ver = (VerValores)parameter; } // Asignamos el valor del texto y la hora que se va a devolver. string texto = value as string; // Parseamos la hora en función del parámetro. if (Utils.ParseHora(texto, out TimeSpan hora, ver.HasFlag(VerValores.HoraPlus))) { return(hora); }