2012-02-15 22 views
17

Mam mały problem, którego po prostu nie mogę rozwiązać. Mam dwie zmienne datetime, ważne dane w tym roku, roku, miesiąca i dnia. Druga zmienna datetime przechowuje godzinę, minutę i sekundę.Połączyć dwie zmienne datetime w jedną

Powód tego chaosu wynika z bazy danych, z której pobieram dane, gdzie mają dwie różne kolumny do przechowywania faktycznej daty i czasu. Oto kod:

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

      DateTime newDateTime = new DateTime(); 

newDateTime trzeba mieć komplet datetime, gdzie frakcja data jest w zmiennej data i czas frakcja jest w zmiennej czasowej.

Jeśli ktoś może pomóc, będę bardzo szczęśliwy :)

Odpowiedz

35

ten powinien zrobić:

newDateTime = date.Date + time.TimeOfDay; 
7

Korzystanie this constructor.

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

Dzięki tym również pracował – user1035217

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

Obiekt Date wyklucza jakikolwiek składnik czasu (efektywnie północy określonej daty) i Time zwrotu własności tylko komponentu razem jako TimeSpan.

Tutaj bierzemy część daty zmiennej date, aby uzyskać północ, i dodajemy do niej składnik czasu zmiennej time, aby uzyskać poprawną datę i godzinę.

1

można zrobić coś takiego poniżej

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