Ответ 1
Это должно сделать:
newDateTime = date.Date + time.TimeOfDay;
У меня есть небольшая проблема, которую я просто не могу решить. У меня есть две переменные datetime, важными данными в этом году являются год, месяц и день. Другая переменная datetime хранит час, минуту и секунду.
Причина этого хаоса связана с базой данных, из которой я извлекаю данные, где у них есть два разных столбца для хранения фактической даты и времени. Вот код:
DateTime date = Convert.ToDateTime(dTable.Rows[i][0]);
DateTime time = Convert.ToDateTime(dTable.Rows[i][1]);
DateTime newDateTime = new DateTime();
В NewDateTime должно быть установлено полное значение даты, когда дробь даты находится в переменной даты, а временная доля - во временной переменной.
Если кто-то может помочь, я буду очень рад:)
Это должно сделать:
newDateTime = date.Date + time.TimeOfDay;
Используя этот конструктор.
DateTime newDateTime = new DateTime(date.Year, date.Month, date.Day,
time.Hour, time.Minute, time.Second);
DateTime newDateTime = date.Date.Add(time.Time);
Свойство Date
исключает любой компонент времени (эффективно полночь указанной даты), а свойство Time
возвращает только компонент времени как TimeSpan
.
Здесь мы берем часть даты переменной Date
для получения полуночи и добавляем к ней временную составляющую переменной Time
, чтобы получить правильную дату и время.
Вы можете сделать что-то вроде этого ниже
TimeSpan timeSpan = time.TimeOfDay;
string s = string.Format("{0} {1}", date.Date.ToString("MM dd yyyy"), time.ToString());
DateTime combinedDateTime = DateTime.Parse(s);