2012-02-15 23 views
17

Tengo un pequeño problema que parece que no puedo resolver. Tengo dos variables de fecha y hora, la información importante en una es el año, el mes y el día. La otra variable de fecha y hora almacena la hora, el minuto y el segundo.Combina dos variables de fecha y hora en una

La razón de este caos se debe a la base de datos de la que estoy extrayendo los datos, donde tienen dos columnas diferentes para almacenar la fecha y la hora reales. Aquí está el código:

  DateTime date = Convert.ToDateTime(dTable.Rows[i][0]); 
      DateTime time = Convert.ToDateTime(dTable.Rows[i][1]); 

      DateTime newDateTime = new DateTime(); 

El newDateTime necesita tener el conjunto de fecha y hora completa, donde la fracción fecha es la fecha en la variable y la fracción de tiempo está en la variable tiempo.

Si alguien puede ayudar a cabo Voy a ser muy feliz :)

Respuesta

35

Esto debería hacer:

newDateTime = date.Date + time.TimeOfDay; 
7

Usando this constructor.

DateTime newDateTime = new DateTime(date.Year, date.Month, date.Day, 
            time.Hour, time.Minute, time.Second); 
+0

Gracias esto también trabajado – user1035217

3
DateTime newDateTime = date.Date.Add(time.Time); 

La propiedad Date excluye cualquier componente de tiempo (de hecho, la medianoche de la fecha especificada), y los Time retornos de propiedad sólo el componente de tiempo como TimeSpan.

Aquí tomamos la parte de fecha de la variable date para obtener la medianoche y le agregamos el componente de tiempo de la variable time, para obtener la fecha y hora correctas.

1

Usted puede hacer algo como esto más adelante

TimeSpan timeSpan = time.TimeOfDay; 
     string s = string.Format("{0} {1}", date.Date.ToString("MM dd yyyy"), time.ToString()); 
     DateTime combinedDateTime = DateTime.Parse(s); 
Cuestiones relacionadas