J'ai un objet DateTime qui peut contenir ou non des informations de date/heure. Avec cela, j'ai besoin de remplacer l'heure avec mon nouvel horaire indépendamment de la date et vice versa. Comment pourrais-je y parvenir? Je ne vois rien d'autre que de créer deux nouveaux objets DateTime, l'un avec l'ancienne/nouvelle date et l'autre avec l'ancienne/nouvelle heure et la concaténation. Il doit sûrement y avoir un meilleur moyen que cela?Remplacer une section Date ou Heure dans un objet DateTime dans C#
Répondre
Je voudrais écrire deux ou trois méthodes d'extension:
public static DateTime WithTime(this DateTime date, TimeSpan time)
{
return date.Date + time;
}
public static DateTime WithDate(this DateTime original, DateTime newDate)
{
return newDate.WithTime(original);
}
public static DateTime WithTime(this DateTime original, DateTime newTime)
{
return original.Date + newTime.TimeOfDay;
}
(Vous n'avez pas vraiment besoin à la fois des deuxièmes méthodes, mais parfois il peut être plus simple si vous enchaînant beaucoup d'appels.)
Notez que vous n'êtes pas en train de créer des objets en termes d'articles sur le tas, comme DateTime
est un struct.
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, il est une doublure:
DateTime CreateNewDateTime(DateTime date, DateTime time)
{
return new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second);
}
Ce n'est peut-être pas exactement que vous recherchez, mais la classe DateTime comporte une série de méthodes Add (AddMinutes(), AddDays(), etc.). Je dis cela pourrait ne pas être ce que vous cherchez, car ceux-ci renvoient un DateTime, alors vous devez faire quelque chose comme
myDate = myDate.AddMinutes(60);
bande le temps d'un datetime existant en écrivant .Date
DateTime new = oldDate.Date;
Ajoutez votre TIme soit en ajoutant les heures, les minutes & secondes individuellement
DateTime new = oldDate.Date.AddHours(14).AddMinutes(12).AddSeconds(33);
ou à la fois
DateTime new = oldDate.Date.AddSeconds(51153);
ou en ajoutant un TimeSpan()
DateTime new = oldDate.Date.Add(new TimeSpan(14,12,33));
- 1. Remplacer la date dans un DateTime avec une autre date
- 2. Comment diviser datetime en date et heure dans informatica
- 3. PHP date heure
- 4. Date et heure d'impression Dans la construction Visual Studio C++?
- 5. Valeur de date-heure SQL
- 6. Convertir vers/à partir DateTime et heure dans Ruby
- 7. Comparaison de date/heure dans Rails
- 8. Comment remplacer une section dans un modèle de mots avec plusieurs champs C#
- 9. Paradox: interroger une colonne Date + une colonne Heure en tant que DateTime
- 10. Comment convertir une datetime .Net en une date-heure T-SQL
- 11. La sérialisation Javascript de DateTime dans asp.net ne donne pas un objet date javascript?
- 12. C# Mise en forme de date/heure
- 13. Date Heure Formatage
- 14. Comment est-ce que j'analyse et convertis un DateTime au format date-heure de RFC 3339?
- 15. Comment interroger datetime en fonction de la date dans C#
- 16. Date et heure Date d'entrée dans le calendrier Outlook automatiquement?
- 17. Convertir une chaîne avec date et heure à une date
- 18. Comment gérer null pour un champ de date-heure (DB) allow-null dans notre programme?
- 19. Insérer une date-heure de serveur à l'aide d'une SqlCommand
- 20. PHP Heure et date
- 21. Comment puis-je convertir une chaîne en date-heure dans .NET?
- 22. Heure exacte entre 2 DateTime?
- 23. Comment obtenir la même heure et le jour le mois prochain en utilisant DateTime dans C#
- 24. Heure/plage Date Grammaires
- 25. Comparer une chaîne de date à datetime dans SQL Server?
- 26. Saisie date/heure pour un formulaire HTML
- 27. sharepoint enregistrer une date dans un champ de date
- 28. Quel est le meilleur moyen de poster une date/heure dans une vue django?
- 29. MySQL calcul de date/heure
- 30. Sérialisation DateTime à heure sans millisecondes et gmt