none
problema al separar hora desde un GridView RRS feed

  • Pregunta

  • buen día estimados, 

    al grano. Poseo un problema al separar las hora. es decir...

    poseo un DataGridView con 3 columnas(fecha, entrada y salidas) estos datos los exporto a un excel desde un BD SQL SERVER.

    el problema ocurre cuándo quiero separar las horas. quiero obtener solo las HORAS de entrada y salida al igual que los minutos para poder hacer la resta y obtener las horas trabajadas.

    lo estoy desarrollando en c#. esto es lo que poseo y me manda el siguiente error

    string hEntrada = Convert.ToString(row.Cells[1].Value);//
    string hEnt = hEntrada .Substring(0,2);//para solo obtener en esta linea las horas *

    *El índice y la longitud deben hacer referencia a una ubicación en la cadena.\r\nNombre del parámetro: length(aqui me manda el error)

    cualquier orientación es de gran ayuda, saludos y gracias


    martes, 29 de diciembre de 2015 14:08

Todas las respuestas

  • buen día estimados, 

    al grano. Poseo un problema al separar las hora. es decir...

    poseo un DataGridView con 3 columnas(fecha, entrada y salidas) estos datos los exporto a un excel desde un BD SQL SERVER.

    el problema ocurre cuándo quiero separar las horas. quiero obtener solo las HORAS de entrada y salida al igual que los minutos para poder hacer la resta y obtener las horas trabajadas.

    lo estoy desarrollando en c#. esto es lo que poseo y me manda el siguiente error

    string hEntrada = Convert.ToString(row.Cells[1].Value);//
    string hEnt = hEntrada .Substring(0,2);//para solo obtener en esta linea las horas *

    *El índice y la longitud deben hacer referencia a una ubicación en la cadena.\r\nNombre del parámetro: length(aqui me manda el error)

    cualquier orientación es de gran ayuda, saludos y gracias



    martes, 29 de diciembre de 2015 14:08
  • Hola Cris, puedes convertir a DataTime y utilizar su formato para mostrar el campo que necesitas:

    var fecha = DateTime.Parse(row.Cells[1].Value.ToString());
    string soloHora = fecha.ToString("HH:mm"); //Esto convierte la fecha en el formato 24horas mostrando hora y minutos.

    Espero resulte útil.

    Saludos


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    My Blog
    My code samples

    martes, 29 de diciembre de 2015 14:27
  • gracias por responder Christian, 

    me da este error: Referencia a objeto no establecida como instancia de un objeto en la linea; donde se parsea a DataTime

    martes, 29 de diciembre de 2015 14:43
  • Evitemos el error:

    object celda = row.Cells[1].Value;
    if (celda != null)
    {
        DateTime fecha;
        DateTime.TryParse(celda.ToString(), fecha);
        
        string soloHora = fecha.ToString("HH:mm"); //Esto convierte la fecha en el formato 24horas mostrando hora y minutos.
    }
    Saludos


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    My Blog
    My code samples

    martes, 29 de diciembre de 2015 14:46
  • gracias por el tiempo de ayudarme a salir de este aprieto.. tome tu solución como referencia

    Solucióin:

    var hSalida = Convert.ToDateTime(row.Cells[2].Value);
    string hSal = hSalida.ToString("HH:mm");//Substring(0, 4);
    int h = Convert.ToInt32(hSal.Substring(3,2));

    muchas gracias, saludos 

    martes, 29 de diciembre de 2015 14:59