Chaque fois que je crée une date / heure non nullable dans mon application mvc3, sa valeur par défaut est now (), où se trouve la date actuelle avec l’heure actuelle. Je voudrais par défaut à la date d’aujourd’hui à 12h comme heure.
J’essaie de régler l’heure par défaut dans mon mvc … mais … la date suivante n’est pas fixée à 12h. Au lieu de cela, la valeur par défaut est maintenant avec la date et l’heure actuelles.
private DateTime _Begin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0); public DateTime Begin { get { return _Begin; } set { _Begin = value; } }
Comment puis-je définir à 12h pour la date actuelle pour datetime non nullable?
Vous pouvez utiliser la propriété Date
de l’object DateTime, par exemple
DateTime midnight = DateTime.Now.Date;
Ainsi, votre exemple de code devient
private DateTime _Begin = DateTime.Now.Date; public DateTime Begin { get { return _Begin; } set { _Begin = value; } }
PS Si vous retournez à votre code d’origine en définissant les heures à 12 , vous obtiendrez l’heure de midi pour la journée en cours, vous auriez donc pu utiliser 0 …
var now = DateTime.Now; new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
Je crois que vous recherchez DateTime.Today
. La documentation indique
An object that is set to today's date, with the time component set to 00:00:00.
http://msdn.microsoft.com/en-us/library/system.datetime.today.aspx
Votre code serait
DateTime _Begin = DateTime.Today;
Seulement besoin de le régler sur
DateTime.Now.Date
Console.WriteLine(DateTime.Now.Date.ToSsortingng("yyyy-MM-dd HH:mm:ss")); Console.Read(); It shows "2017-04-08 00:00:00" on my machine.
En utilisant certaines des recommandations ci-dessus, la fonction et le code suivants fonctionnent pour rechercher une plage de dates:
Définir la date avec le composant heure défini sur 00:00:00
public static DateTime GetDateZeroTime(DateTime date) { return new DateTime(date.Year, date.Month, date.Day, 0, 0, 0); }
Usage
var modifieddatebegin = Tools.Utilities.GetDateZeroTime(form.modifieddatebegin); var modifieddateend = Tools.Utilities.GetDateZeroTime(form.modifieddateend.AddDays(1));
La plupart des solutions suggérées peuvent entraîner une erreur d’un jour en fonction du temps associé à chaque date. Si vous recherchez un nombre entier de jours calendaires entre deux dates, quelle que soit l’heure associée à chaque date, j’ai constaté que cela fonctionne bien:
return (dateOne.Value.Date - dateTwo.Value.Date).Days;
Essayez-le ……
DateTime Date = DateTime.Now.AddHours(-DateTime.Now.Hour).AddMinutes(-DateTime.Now.Minute).AddSeconds(-DateTime.Now.Second);
OutPut sera ….
29/07/2015 00:00:00