2009-05-21 10 views

Répondre

36

Vous ne devriez pas utiliser un DateTime pour représenter un laps de temps - utilisez TimeSpan pour cela. Et dans ce cas, vous pouvez utiliser:

TimeSpan ts = TimeSpan.FromMinutes(90); 

Si vous insistez pour que vous avez besoin d'un DateTime, vous pouvez effectuer les opérations suivantes:

DateTime dt = DateTime.Now.Date; // To get Midnight Today 
dt = dt.AddMinutes(90); // to get 90-minutes past midnight Today. 

La raison pour laquelle vous ne voulez probablement pas utilisez DateTime, cependant, c'est que (bien nommé) combine le concept de Date avec le concept de Time. Votre question suggère que vous envisagez d'ignorer la composante de date, donc dans l'intérêt d'utiliser le bon outil pour le travail, je suggère TimeSpan.

+0

Mais, j'ai vraiment besoin de cela transformé en DateTime, sinon jettera une erreur! – user95542

+0

C'est une honte - ah bien. Utilisez ma deuxième suggestion, alors, et vous devriez être bon pour aller. –

1

Ou si vous essayez d'ajouter du temps à un DateTime avec juste une date:

DateTime dt = dateTime.AddMinutes(90); 
+5

DateTime est immuable: l'appel de AddMinutes() renvoie un nouveau DateTime avec l'ajout effectué. Ignorer la valeur de retour donnera l'impression que rien ne s'est passé. –

1


Si vous utilisez C# 4 (VS 2010) dont vous avez besoin cet extrait:

TimeSpan ts = TimeSpan.FromSeconds(90); 
txtDate = string.Format("Full time: {0}", new DateTime(ts.Ticks).ToString("HH:mm:ss")); 

sortie il

Full time: 00:01:30 
Questions connexes