Объединить два типа DateTime в C # - PullRequest
2 голосов
/ 17 сентября 2009

Это то, что я имею до сих пор.

/// <summary>
/// Gets the date.
/// </summary>
/// <param name="date">The date: 05/07/2009</param>
/// <returns></returns>
private static DateTime GetDate(string date)
{
    DateTime postDate = DateTime.Parse(date);
    postDate.AddHours(DateTime.UtcNow.Hour);
    postDate.AddMinutes(DateTime.UtcNow.Minute);
    postDate.AddSeconds(DateTime.UtcNow.Second);
    postDate.AddMilliseconds(DateTime.UtcNow.Millisecond);

    return postDate;
}

Есть ли лучший способ объединить две даты? Я ищу более элегантное решение.

Ответы [ 3 ]

7 голосов
/ 17 сентября 2009

Вы можете попробовать это

/// <summary>
/// Gets the date.
/// </summary>
/// <param name="date">The date: 05/07/2009</param>
/// <returns></returns>
private static DateTime GetDate(string date)
{
    DateTime postDate = DateTime.Parse(date);        
    return postDate.Add(DateTime.UtcNow.TimeOfDay);        
}

MSDN Ссылка: DateTime.Add

РЕДАКТИРОВАТЬ: изменение кода

3 голосов
/ 17 сентября 2009
return DateTime.Parse(date) + DateTime.UtcNow.TimeOfDay;
1 голос
/ 17 сентября 2009

Я не уверен, что добавление двух дат имеет какой-либо смысл. Не могли бы вы привести пример, как вчера + сейчас = что-то? Добавление TimeSpan будет иметь смысл: вчера + 1 день = сегодня.

Не могли бы вы объяснить, что именно вы хотите? Дата, которую вы анализируете, на самом деле является TimeSpan? Тогда вы должны сделать:

return DateTime.UtcNow.Add (TimeSpan.parse (timespanstring))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...