10
votes

Remplacer une section de date ou d'heure dans un objet DateTime en C #

J'ai un objet DateTime qui peut ou non déjà des informations de date / heure. Avec cela, je dois remplacer l'heure avec ma nouvelle fois indépendamment de la date et inversement. Comment pourrais-je y arriver? Je ne vois rien d'évident autre que de créer deux nouveaux objets DateTime, un avec l'ancienne / nouvelle date et une avec l'ancienne / nouvelle fois et concaténant. Il faut sûrement être un meilleur moyen que cela?


0 commentaires

4 Réponses :


12
votes

DateTime est une structure immuable.

La seule option consiste à construire une nouvelle structure DateTime basée sur vos deux valeurs existantes. C'est la meilleure approche. Heureusement, c'est une doublure: xxx


0 commentaires

12
votes

J'écrirais deux ou trois méthodes d'extension: xxx

(vous n'avez vraiment pas besoin de la deuxième méthode, mais de temps en temps, cela pourrait être plus simple si vous enchaînez beaucoup des appels.)

Notez que vous ne créez aucun objets en termes d'éléments sur le tas, comme DateTime est une structure.


0 commentaires

0
votes

Cela peut ne pas être exactement ce que vous recherchez, mais la classe DateTime a une série de méthodes d'ajout (addminutes (), addays (), etc.). Je dis que cela pourrait ne pas être ce que vous cherchez, car ils renvoient une date d'heure, vous devriez donc faire quelque chose comme xxx


0 commentaires

1
votes

Detissez le temps d'une date d'heure existante en écrivant .Date xxx

Ajoutez votre temps en ajoutant l'heure, les minutes et les secondes individuellement xxx

ou tout à la fois xxx

ou en ajoutant une tempée () xxx


0 commentaires