CSharp - Clase Convertir objetos en tipos de datos

Written by lopezatienza on 13 Diciembre 2009 – 22:38 -

Aquí os dejo una clase para convertir objetos en tipos de datos, evitando las excepciones producidas por la conversión de datos en tipos de datos no compatibles.

using System;

using System.Windows.Forms;

using System.Collections.Generic;

using System.Text;

 

public abstract class Convertir

{

 

    /// <summary>

    /// Devuelve un bool a partir de un string(S o TRUE = True , N o FALSE = False). Si da error devuelve False.

    /// </summary>

    public static bool StringToBool(string Texto)

    {

        try

        {

            switch (Texto.ToUpper())

            {

                case "S,Y,TRUE": return true;

                case "N,FALSE": return false;

                default: return false;

            }

        }

        catch

        {

            return false;

        }

    }

 

    /// <summary>

    /// Devuelve un DateTime a partir de un object según el Formato de Origen.

    /// Formatos permitidos: AAAA/MM/DD ó AA/MM/DD ó DD/MM/AA ó DD/MM/AAAA .

    /// Si da error devuelve [Now].

    /// </summary>

    public static DateTime ObjectToDateTime(object _object, string Formato_Origen)

    {       

        try

        {

            string strFecha = Convertir.ObjectToString(_object);

            int Year;

            int Month;

            int Day;

           

           

            switch(_object.ToString())

            {

                case "AAAA/MM/DD":

                    {

                        Year = Convertir.StringToInt(strFecha.Substring(0,4));

                        Month = Convertir.StringToInt(strFecha.Substring(5,2));

                        Day = Convertir.StringToInt(strFecha.Substring(8, 2));

                        return new DateTime(Year, Month, Day);

                    }

                case "AA/MM/DD":

                    {

                        Year = Convertir.StringToInt(strFecha.Substring(0, 2));

                        Month = Convertir.StringToInt(strFecha.Substring(3, 2));

                        Day = Convertir.StringToInt(strFecha.Substring(6, 2));

                        return new DateTime(Year, Month, Day);

                    }

                case "DD/MM/AA":

                    {

                        Year = Convertir.StringToInt(strFecha.Substring(6, 2));

                        Month = Convertir.StringToInt(strFecha.Substring(3, 2));

                        Day = Convertir.StringToInt(strFecha.Substring(0, 2));

                        return new DateTime(Year, Month, Day);

                    }

                case "DD/MM/AAAA":

                    {

                        Year = Convertir.StringToInt(strFecha.Substring(8, 4));

                        Month = Convertir.StringToInt(strFecha.Substring(3, 2));

                        Day = Convertir.StringToInt(strFecha.Substring(0, 2));

                        return new DateTime(Year, Month, Day);

                    }

            }

            return DateTime.Now;

        }

        catch

        {

            return DateTime.Now;

        }

    }

 

    /// <summary>

    /// Devuelve un DateTime a partir de un object según el Formato de Origen.

    /// Formatos permitidos: AAAA/MM/DD ó AA/MM/DD ó DD/MM/AA ó DD/MM/AAAA .

    /// Si da error devuelve [Now].

    /// </summary>

    public static DateTime ObjectToDateTime(object _object)

    {

        try

        {

            return Convert.ToDateTime(_object);

        }

        catch

        {

            return DateTime.Now;

        }

    }

 

    /// <summary>

    /// Devuelve un bool a partir de un string(S o TRUE = True , N o FALSE = False). Si da error devuelve False.

    /// </summary>

    public static bool ObjectToBool(object _object)

    {

        try

        {

            switch (_object.ToString().ToUpper())

            {

                case "S,Y,TRUE": return true;

                case "N,FALSE": return false;

                default: return false;

            }

        }

        catch

        {

            return false;

        }

    }

 

    /// <summary>

    /// Devuelve un integer a partir de un string. Si da error devuelve 0.

    /// </summary>

    public static int StringToInt(string Texto)

    {

        try

        {

            return Convert.ToInt32(Texto);

        }

        catch

        {

            return 0;

        }

    }

 

    /// <summary>

    /// Devuelve un integer a partir de un oject. Si da error devuelve 0.

    /// </summary>

    public static int ObjectToInt(object _object)

    {

        try

        {

            return Convert.ToInt32(_object);

        }

        catch

        {

            return 0;

        }

    }

 

    /// <summary>

    /// Devuelve un string a partir de un decimal. Si da error devuelve null.

    /// </summary>

    public static string DecimalToString(decimal Decimal)

    {

        try

        {

            return Decimal.ToString();

        }

        catch

        {

            return null;

        }

    }

 

    /// <summary>

    /// Devuelve un string a partir de un object. Si da error devuelve "".

    /// </summary>

    public static string ObjectToString(object _object)

    {

        try

        {

            return _object.ToString();

        }

        catch

        {

            return "";

        }

    } 

}

Descargar Convertir.cs


Tags: ,
Posted in CSharp |

Leave a Comment

RSS