2 Методы расширения для решений, упомянутых выше
public static bool LiesAfterIgnoringMilliseconds(this DateTime theDate, DateTime compareDate, DateTimeKind kind)
{
DateTime thisDate = new DateTime(theDate.Year, theDate.Month, theDate.Day, theDate.Hour, theDate.Minute, theDate.Second, kind);
compareDate = new DateTime(compareDate.Year, compareDate.Month, compareDate.Day, compareDate.Hour, compareDate.Minute, compareDate.Second, kind);
return thisDate > compareDate;
}
public static bool LiesAfterOrEqualsIgnoringMilliseconds(this DateTime theDate, DateTime compareDate, DateTimeKind kind)
{
DateTime thisDate = new DateTime(theDate.Year, theDate.Month, theDate.Day, theDate.Hour, theDate.Minute, theDate.Second, kind);
compareDate = new DateTime(compareDate.Year, compareDate.Month, compareDate.Day, compareDate.Hour, compareDate.Minute, compareDate.Second, kind);
return thisDate >= compareDate;
}
использование:
bool liesAfter = myObject.DateProperty.LiesAfterOrEqualsIgnoringMilliseconds(startDateTime, DateTimeKind.Utc);
Хотя я дам вам это, потому что вы технически верны, так как люди, читающие данные из SQL Server, сравниваются с некоторыми распределенными данными (в моем случае - это веб-запрос), этот размер разрешения не требуется. –
Ницца. Очевидно, кто-то должен предоставить классу DateTime некоторые методы расширения для округления до ближайшего, чтобы этот тип хорошего кодирования снова использовался. –
Это очень маловероятно, но разве этот подход не срабатывает, когда тики = 0? – adotout