Je récupère des données d'une iSeries où il y a des champs de date et d'heure séparés. Je veux les rejoindre dans un champ DateTime de mon projet C#. Je ne vois pas comment ajouter juste une heure à un champ DateTime. Comment suggéreriez-vous d'y parvenir ?
Réponses
Trop de publicités?
David M
Points
45808
Vous pouvez le faire assez facilement :
DateTime dateOnly;
DateTime timeOnly;
...
DateTime combined = dateOnly.Date.Add(timeOnly.TimeOfDay);
TimeOfDay
renvoie un TimeSpan
, que vous ajoutez ensuite à la date.
Modifier (grâce aux commentateurs ci-dessous) - pour être sûr, utilisez dateOnly.Date
pour assurer la partie date uniquement.
Reed Copsey
Points
315315
Vous pouvez facilement construire un TimeSpan à partir de votre champ "time".
Une fois que vous avez ça, faites juste :
TimeSpan time = GetTimeFieldData();
dateField = dateField.Add(time);
Mark Dykun
Points
31
Seattle Leonard
Points
2395
Vous pouvez ajouter un TimeSpan
un DateTime
et écrire quelque chose comme ça.
// inside consuming function
ISeriesObject obj = getMyObject();
DateTime dt = getDate(obj) + getTime(obj);
private DateTime getDate(ISeriesObject obj)
{
//return a DateTime
}
private TimeSpan getTime(ISeriesObject obj)
{
//return a TimeSpan
}