예제 #1
0
        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"));
        }
예제 #2
0
        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") + ")");
        }
예제 #3
0
        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") + ")");
        }
예제 #4
0
        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);
            }