2009-09-17 8 views
2

C'est ce que j'ai jusqu'ici.Fusionner deux types DateTime en C#

/// <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; 
} 

Y a-t-il une meilleure façon de fusionner deux dates? Je suis à la recherche d'une solution plus élégante.

Répondre

3
return DateTime.Parse(date) + DateTime.UtcNow.TimeOfDay; 
+0

Ceci est la bonne réponse. –

7

Vous pouvez essayer cette

/// <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 Lien: DateTime.Add

EDIT: Code changement

+1

Cette réponse est incorrecte. DateTime est une structure immuable; la méthode Add ne modifie pas le DateTime, mais en retourne un nouveau! – Joren

+0

@Joren: Vous avez raison, merci de me corriger. :) –

+0

Ceci est incorrect. Je l'ai confirmé. –

1

Je ne sais pas comment ajouter 2 dates de sens. Pourriez-vous donner un exemple de comment hier + maintenant = quelque chose? Ajouter un TimeSpan aurait du sens: Hier + 1 jour = aujourd'hui.

Pourriez-vous expliquer exactement ce que vous cherchez? La date à laquelle vous analysez est en réalité un TimeSpan? Ensuite, vous devez faire:

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

Questions connexes