CSharp – Clase de conversiones de tipos

Written by lopezatienza on 17/02/2010 – 23:10 -

Buenas a todos.

Aquí os dejo una clase abstracta para realizar conversiones de tipos.

Las conversiones que puede realizar son las siguientes:

  • String to Bool
  • Object to Bool
  • Object to DateTime
  • String to Int
  • Object to Int
  • Decimal to String
  • Object to String

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 Clase Convertir.cs


Autor: Antonio Lopez Atienza


Tags: ,
Posted in CSharp | No Comments »

Leave a Comment

 

RSS
MCC D5E